πŸ“’ Study/🚩 Swift

[ Swift ] κΈ°λ³Έμ—°μ‚°μž

EarthSea 2024. 3. 7. 18:33

 

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