1. ์ผํญ์ฐ์ฐ์
1) ์ผํญ์ฐ์ฐ์ (Ternary Conditional Operator)
: ๊ธฐ๋ณธ ํํ / if๋ฌธ๋ณด๋ค ์กฐ๊ธ์ ํ์ ์ ์ธ ํํ๋ก ์ฌ์ฉ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ํ์ด ๋๊ฐ์ง์ธ ๊ฒฝ์ฐ์ ์ฌ์ฉ
condition ? ์ฐธ์ผ๋์ ์คํ๋ฌธ : ๊ฑฐ์ง์ผ๋์ ์คํ๋ฌธ
์ผ์ชฝ์ condition์ด ์ฐธ / ๊ฑฐ์ง ์ ๋ฌด์ ๋ฐ๋ผ ํด๋ก ์์ ๊ฐ์ด ์คํ๋๊ฑฐ๋ ๋ค์ ๊ฐ์ด ์คํ๋๋ค.
โ๏ธ ์ผํญ์ฐ์ฐ์๋ฅผ ?์ : ์ ๋ค ์ฌ์ด์ ๋์ด์ฐ๊ธฐ๋ฅผ ๊ผญ ํด์ผํจ.
- if - else ๋ฌธ
var a = 10
if a > 0 {
print("1")
} else {
print("2")
}
- ์์ if - else๋ฌธ์ ์ผํญ์ฐ์ฐ์๋ก ํํ
a > 0 ? print("1") : print("2")
→ ์ผํญ์ฐ์ฐ์๋ if-else๋ฌธ๊ณผ ๋์ผํจ.
var name = a > 0 ? "์คํฐ๋ธ" : "ํ์ฟก"
- ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ํ์ด ๋๊ฐ์ง์ธ ๊ฒฝ์ฐ์๋ ์ผํญ์ฐ์ฌ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํธํ๋ค.
- ์ผํญ ์ฐ์ฐ์ ๋จ๋ ์ผ๋ก ์ฐ์ด๊ธฐ ๋ณด๋ค๋, ๊ฒฐ๊ณผ ๊ฐ์ ๋์ ํ๋ ๋ฐ ์ฃผ๋ก ์ฌ์ฉ.
2. ๋ฒ์์ฐ์ฐ์ / ํจํด๋งค์นญ ์ฐ์ฐ์
1) ๋ฒ์์ฐ์ฐ์
: ์ ํ๋ ์ซ์์ ๋ฒ์๋ฅผ ํ๊ธฐํ๊ธฐ ์ํ ์ฐ์ฐ์
let numbers = 1 ... 10
- ๊ท์น
- ๋ด๋ฆผ์ฐจ์ ํ์์ผ๋ก ํ๊ธฐ ๋ถ๊ฐ๋ฅ. ( ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ณํ์ ๊ฐ๋ฅ)
- ๋๋ฌผ๊ฒ๋ ์ค์ ํ์์ ๋ฒ์๋ ๊ฐ๋ฅ
- ํ์ฉ
- switch๋ฌธ์์ ํจํด ๋งค์นญ
- for๋ฌธ
- ๋ฐฐ์ด์ ์๋ธ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ
ํจ์ ๋ฒ์ ์ฐ์ฐ์( Closed Range Operator )
: ํด๋น ๊ฐ์ ํฌํจํ๋ฉด์ ๋ฒ์๋ฅผ ์ ์
- (์ซ์) … (์ซ์) : ์์ชฝ ๋์ด ๋งํ์๋ ๋ฒ์
let range = 1 ... 5
// 1, 2, 3, 4, 5
- (์ซ์)… : ์ผ์ชฝ ๋๋ง ๋งํ์๋ ๋ฒ์
let range1 = 1...
// 1, 2, 3, 4, 5, ...
- …(์ซ์) : ์ค๋ฅธ์ชฝ ๋๋ง ๋งํ์๋ ๋ฒ์
let range2 = ...5
// ... -1, 0, 1, 2, 3, 4, 5
๋ฐํ์ ๋ฒ์ ์ฐ์ฐ์ ( Half-Open Range Operator )
: ์์ ๊ฐ์ ํฌํจํ๋ฉด์ ๋ค์ ๊ฐ์ ํฌํจํ์ง ์๊ณ ๋ฒ์๋ฅผ ์ ์
- (์ซ์) ..< (์ซ์) : ์์ ๊ฐ์ ํฌํจํ๋ฉด์ ๋ค์ ๊ฐ์ ํฌํจํ์ง ์๊ฒ ์์ชฝ ๋์ด ๋งํ์๋ ๋ฒ์
let rangeH = 1 ..< 5
// 1, 2, 3, 4
→ ๋ฐฐ์ด์ for ๋ฌธ์์ ๋ง์ด ์ฐ์
var number = [1, 5, 6, 7, 0]
var answer = 0
for i in 0..<number.count {
answer += i*number[i]
}
print(answer)
// ์ถ๋ ฅ : 38
- ..<(์ซ์) : ๋ค์ ๊ฐ์ ํฌํจํ์ง ์๊ฒ ์ค๋ฅธ์ชฝ ๋์ด ๋งํ์๋ ๋ฒ์
let rangeH1 = ..<5
// ... , -1, 0, 1, 2, 3, 4
โ๏ธ One-Sided๋ก ํ๊ธฐํ ๋๋ ๊ผญ ์ซ์์ ๋ถ์ฌ์ ์ฌ์ฉ
2) ~= (ํจํด๋งค์นญ ์ฐ์ฐ์)
: ๋ฒ์์ฐ์ฐ์์ ํจ๊ป ์ฐ์ด๋ ์ฐ์ฐ์๋ก ์ซ์๊ฐ ๋ฒ์๋ด์ ์๋์ง ํ์ธํ๋ ์ฐ์ฐ์
let range = 1...10
print(range ~= 5)
// ๊ฒฐ๊ณผ : true
→ ์ค๋ฅธ์ชฝ์ 5๊ฐ ๋ฒ์ 1๋ถํฐ 100๊น์ง์ ์ํด์๋์ ๋ํ Bool๊ฐ์ ๋ฆฌํด
var n = 20
if n >= 10 && n <= 100 {
print("10์ด์, 100์ดํ์
๋๋ค.")
}
if 10...100 ~= n {
print("10์ด์, 100์ดํ์
๋๋ค.")
}
โ๏ธ ์ค์ํํธ์์ 10<=n<=100๋ ์ฑ๋ฆฝํ์ง ์๋๋ค. ( 10 ... 100์ด ๋ง๋ ํํ )
- switch ๋ฌธ์ ๋ด๋ถ์ ์ผ๋ก **ํจํด๋งค์นญ์ฐ์ฐ์(~=)**๊ฐ ๊ตฌํ๋์ด ์๋ค.
switch age {
case 20...29:
print("20๋ ์
๋๋ค.")
case 30...39:
print("30๋ ์
๋๋ค.")
default :
break
}