[ Swift ] κΈ°λ³Έμ°μ°μ
1. κΈ°λ³Έμ°μ°μ
1) μ°μ°μμ κΈ°μ΄
μ°μ°μ( operator )
: κ°μ κ²μ¬, λ°κΎΈκ±°λ μ‘°ν©νκΈ° μν΄ μ¬μ©νλ νΉμν κΈ°νΈλ ꡬμ
νΌμ°μ°μμ κ°μμ λ°λ₯Έ μ°μ°μμ ꡬλΆ
- λ¨νμ°μ°μ (Unary Operator)
: λ¨μΌ λμμ λ°λ‘ μ λλ λ°λ‘ λ€μ μμΉνλ μ°μ°μ (곡백 μμ΄ λ°λμ λΆμ¬μ μ¬μ©)
μ) +a, -a, !a, a… - μ΄νμ°μ°μ (Binary Operator)
: λ κ°μ λμμ κ°μ΄λ° μμΉνλ μ°μ°μ ( μ°μ°μ μμͺ½μΌλ‘ 곡백μ λκ³ μ¬μ© )
λΉλμΉμ μ¬μ©μ΄ λΆκ°νλ€
μ) a + b, a >= b - μΌνμ°μ°μ (Ternary Operator) → λ€μμ λ μμΈν
: μΈ κ°μ λμμ μ‘°ν©νμ¬ νΉμν κ³μ°μ ν¨ ( λͺ¨λ μ¬μ΄μ 곡백μ νμΉΈμ© μΆκ°ν΄μ μ¬μ© )
var a = 3
print(a > 4 ? 7 : 2)
// μΆλ ₯ : 2
βοΈ ? μ : μ μ λ€ μ¬μ΄μ κΌ λ°μ΄μ°κΈ°λ₯Ό ν΄μΌν¨
2) κΈ°λ³Έμ°μ°μ
ν λΉμ°μ°μ
: μ€λ₯Έμͺ½ κ°μ μΌμͺ½ κ°μ λμ (ν λΉ)νλ μ°μ°μ
// num2λΌλ μμμ 10κ°μ λμ
νλ κ²
let num2 = 10
// num1λΌλ λ³μμ 5κ°μ λμ
νλ κ²
var num1 = 5
// κ°λ€λ μ°μ°μ
num1 == num2
→ ν λΉμ°μ°μμ κ°λ€λΌλ μ°μ°μλ λ€λ₯Έ μ°μ°μμ΄λ€.
μ°μ μ°μ°μ
: κΈ°λ³Έμ μΈ μ¬μΉμ°μ°
- + : λνκΈ° μ°μ°μ
- - : λΉΌκΈ° μ°μ°μ
- * : κ³±νκΈ° μ°μ°μ
- / : λλκΈ° μ°μ°μ(μ¬λμ) ( μ μλΌλ¦¬μ μ°μ°μμλ λͺ« )
- βοΈ % : λͺ¨λλ‘(λλ¨Έμ§) μ°μ°μ ( μ μλΌλ¦¬μ μ°μ°μμλ λλ¨Έμ§ )
βοΈ μ°μ° μ κ°μ νμ μ λ°μ΄ν°λΌλ¦¬λ§ μ°μ° λ° μ μ₯μ΄ κ°λ₯νλ€.
var a : Int = 4
var b : Int = 5
newResult = Double(a / b)
// μΆλ ₯ : 0
newResult = Double(a) / Double(b)
// μΆλ ₯ : 0.8
βοΈ λλκΈ° μ¬μ©μ νμ μ£Όμ
첫 λ²μ§Έμ½λμμλ μ μλΌλ¦¬μ λλμ μ μ§νν μ μκ° ( 0 )μ μ€μκ°μΌλ‘ λ³κ²½νκΈ°λλ¬Έμ 0μ΄λΌλ κ²°κ³Όκ°μ΄ λμ€μ§λ§, λλ²μ§Έ μ½λμμλ κ° λ³μλ₯Ό μ€μλ‘ λ³κ²½ν΄ 4.0 / 5.0λ₯Όλ₯Ό μ§ννμ¬ 0.8μ κ²°κ³Όκ°μ΄ λμ¨λ€.
λ³΅ν© ν λΉ μ°μ°μ(Compound Assignment Operators)
var value1 = 10
var value2 = 10
// λ§μ
value1 = value1 + 10
value2 += 10
print(value1, value2)
// μΆλ ₯ : 20 20
// λΊμ
value1 = value1 - 5
value2 -= 5
print(value1, value2)
// μΆλ ₯ : 15 15
// κ³±μ
value1 = value1 * 2
value2 *= 2
print(value1, value2)
// μΆλ ₯ : 30 30
// λλμ
value1 = value1 / 3
value2 /= 3
print(value1, value2)
// μΆλ ₯ : 10 10
// λλ¨Έμ§ μ°μ°
value1 = value1 % 4
value2 %= 4
print(value1, value2)
// μΆλ ₯ : 2 2
βοΈ μ¦κ°μ°μ°μ ++, —λ μ€μννΈμμ μ§μνμ§ μλλ€.
λΉκ΅μ°μ°μ(Comparison Operators)
: μ°μ°μλ₯Ό μ€μ¬μΌλ‘ μΌμͺ½κ³Ό μ€λ₯Έμͺ½μ ννμμ΄ μμΉνλ©°, κ²°κ³Όκ°μ νμ μ°Έ λλ κ±°μ§μ μΆλ ₯
μνμ κΈ°νΈ | νλ‘κ·Έλλ°μ κΈ°νΈ | λ» |
= | == | κ°λ€ |
≠ | != | κ°μ§μλ€ |
> | > | ν¬λ€ |
< | < | μλ€ |
≥ | >= | ν¬κ±°λ κ°λ€ |
≤ | <= | μκ±°λ κ°λ€ |
- ν λΉμ°μ°μμ λΉκ΅μ°μ°μκ° ν μ½λμ μ λ ₯λμ΄ μμ κ²½μ°, μ»΄ν¨ν°λ νμ λΉκ΅μ°μ°μλ₯Ό λ¨Όμ μνν ν ν λΉμ°μ°μλ₯Ό μννλ€.
var c = (b == 123)
βοΈ νλ¦° ννμ 10 <= n <= 100 / λ§λ ννμ (10 <= n) && (n <= 100)
λ Όλ¦¬ μ°μ°μ(Logical Operators)
: μ°μ°μλ₯Ό μ€μ¬μΌλ‘ μΌμͺ½κ³Ό μ€λ₯Έμͺ½μ Boolean ννμμ΄ μμΉν΄μΌ νλ©°, κ²°κ΄κ°μ νμ μ°Έ λλ κ±°μ§μ μΆλ ₯
- ! (Logical NOT Operator)
: !λ notμΌλ‘ κ²°κ³Όλ₯Ό λ€μ§λ μ°μ°μ.
βοΈ λ Όλ¦¬ μ°μ°μμ΄μ§λ§ λ¨ν μ°μ°μμ μ°μ μμμμ μ¬μ©λ¨. - && (Logical AND Operator)
: &&λ Andλ‘ λ λ€ μ°ΈμΌ κ²½μ°μλ§ μ°Έ, λλ¨Έμ§λ κ±°μ§μ μΆλ ₯νλ€. - || (Logical OR Operator)
: ||λ Orλ‘ λ μ€ νλλ§ μ°Έμ΄μ΄λ μ°Έ, λλ¨Έμ§λ κ±°μ§μ μΆλ ₯νλ€.
μ°μ°μ μ°μ μμ
- λΉκ΅ - <=, >, ==, !=, ...
- λ Όλ¦¬ - &&, ||, ...
- μΌν μ°μ°μ
- ν λΉ, λ³΅ν© ν λΉ - = , +=
3) μ κ·Όμ°μ°μ
μ κ·Όμ°μ°μλ .(μ )μΌλ‘ λͺ μνλλ° μ΄λ νμ κ°λ μ μ κ·Όνλ€λΌλ μλ―Έμ΄λ€.
μλ₯Ό λ€μ΄
νμ.κΉμΉμ°κ°
νμ.κΉμΉ.κΉμΉμ°κ°
λμλ₯Ό μμ±νλ λ¬Έλ²μ νΈμΆν λ μ¬μ©νκΈ°λ νκ³
Int.random(in: 1...3)
Int.random(in: 1...100)
λ¬Έμμ΄μ κΈΈμ΄λ₯Ό λ°νν λμλ μ¬μ©νλ€.
var name = "μ€ν°λΈ"
// λ¬Έμμ΄μ κΈΈμ΄ λ°ν
print(name.count)
// μΆλ ₯ : 3