728x90
๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
ํ๋ฆ ์ ์ด(1) - ์กฐ๊ฑด๋ฌธ
- if ๊ตฌ๋ฌธ
- switch ๊ตฌ๋ฌธ
1. if ๊ตฌ๋ฌธ
- ์ค์ํํธ์ if ๊ตฌ๋ฌธ์ ์กฐ๊ฑด์ ๊ฐ์ด ๊ผญ Bool ํ์ ์ด์ด์ผ ํ๋ค.
- ํ ์กฐ๊ฑด๋ฌธ์ ์ถฉ์กฑํด ๋ธ๋ก ๋ด๋ถ์ ๋ช ๋ น๋ฌธ์ด ์คํ๋๋ฉด, ์ด์ด์ง else if ์กฐ๊ฑด์ ๋ง์กฑํ๋๋ผ๋ ์คํ๋์ง ์๊ณ ์กฐ๊ฑด๋ฌธ์ ๋น ์ ธ๋์จ๋ค.
- (์๊ดํธ)์ ์กฐ๊ฑด์์ ์ ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ด์ง๋ง ์๊ดํธ๋ฅผ ์๋ตํด๋ ๋๋ค.
var num1: Int = 5
var num2: Int = 5
if num1 >= num2 {
print("num1์ด num2 ์ด์์ด๋ค.")
}
else if num1 == num2 {
//์กฐ๊ฑด์ ์ถฉ์กฑํ๋๋ผ๋ ์ด๋ฏธ ์์ ์กฐ๊ฑด์ ๋ง์กฑํ์ฌ ๋ธ๋ก ๋ด๋ถ ๋ช
๋ น๋ฌธ์ด ์คํ๋์๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ ๋น ์ ธ๋์จ๋ค.
print("num1์ด num2๊ณผ ๊ฐ๋ค.")
}
else {
print("๋ชจ๋ฅด๊ฒ ๋ค.")
}
2. switch ๊ตฌ๋ฌธ
- ํ case ์กฐ๊ฑด์ ์ถฉ์กฑํ ๋, ํด๋น case ๋ด๋ถ ๋ช ๋ น๋ฌธ์ ์คํํ๋ฉด break์ด ์์ด๋ switch ๊ตฌ๋ฌธ์ด ์ข ๋ฃ๋๋ค.
- ๋ฐ๋ผ์ switch ๊ตฌ๋ฌธ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ 'case ์ฐ์ ์คํ ๋ฐฉ๋ฒ'์ swift์์ ์ฌ์ฉํ ์ ์๋ค. swift์์ 'case ์ฐ์ ์คํ ๋ฐฉ๋ฒ' ์ ์ฌ์ฉํ๋ ค๋ฉด fallthrough ํค์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ์ ์ ํ์ ๋ง ๊ฐ๋ฅํ ๋ค๋ฅธ ์ธ์ด์๋ ๋ค๋ฅด๊ฒ, swift์ switch ๊ตฌ๋ฌธ ์กฐ๊ฑด์๋ ๋ค์ํ ๊ฐ์ด ๋ค์ด๊ฐ ์ ์๋ค.
- switch ๊ตฌ๋ฌธ์ ์ ๋ ฅ ๊ฐ์ผ๋ก ์ ์, ๋ถ๋์์, ๋ฌธ์, ๋ฌธ์์ด, ์ด๊ฑฐํ, ํํ, ๋ฒ์, ํจํด์ ์ ์ฉ๋ ํ์ ๋ฑ ๊ฐ๋ฅ
- ๋ฒ์ ์ฐ์ฐ์, where ์ ์ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ํ์ฅํ ์๋ ์๋ค. (์ถํ ๊ณต๋ถ)
- ๋น๊ต ๊ฐ์ด ๋ช ํํ ํ์ ๋ ๊ฐ(์ด๊ฑฐ๊ฐ ๋ฑ)์ด ์๋ ๋๋, default๋ฅผ ํ์์ ์ผ๋ก ์์ฑํด์ผ ํ๋ค.
- (์๊ดํธ)์ ์กฐ๊ฑด์์ ์ ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ด์ง๋ง ์๊ดํธ๋ฅผ ์๋ตํด๋ ๋๋ค.
- ํ case์ ๋น๊ต ๊ฐ์ ์ฌ๋ฌ ๊ฐ ์์ฑํ ์ ์๋ค.
- ํ case ๋น ์คํํ ๋ฌธ์ฅ์ด ๊ผญ ์์ด์ผ ํ๋ค. ์คํํ ๋ฌธ์ฅ์์ด 'case ์ฐ์ ์คํ'์ ์ํด fallthrough ๊ตฌ๋ฌธ๋ง ์์ฑํด๋ ๋๋ค. (์ด์ : ๊ทธ ๋ค์ case์ ์คํ ๋ฌธ์ฅ์ด ์๊ธฐ ๋๋ฌธ)
์ ์ switch ๊ตฌ๋ฌธ ๊ธฐ๋ณธ ํํ
let numberTest: Int = 3
switch numberTest {
case 0:
print("0")
case 1...10:
print("1~10")
fallthrough
case 3, 6, 9:
print("3 ๋๋ 6 ๋๋ 9์ ๊ฐ๋ค.")
case 11...20:
fallthrough
case 15:
print("15์
๋๋ค.")
default:
print("ํด๋นํ๋ case๊ฐ ์์ต๋๋ค.")
}
//1~10
3 ๋๋ 6 ๋๋ 9์ ๊ฐ๋ค.
ํํ switch ๊ตฌ๋ฌธ
ํํ์ ์์ผ๋์นด๋ ์๋ณ์(_)๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฉํ๋ค.
let์ ๋ถ์ธ ๊ฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ๊ฐ์ ์์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
typealias colorAndFruit = (color: String, fruit: String) //ํ์
๋ณ์นญ ์ฌ์ฉ
let inputValue: colorAndFruit = ("red", "banana")
switch inputValue {
case ("red", "apple"):
print("์ ๋ต์
๋๋ค.")
case ("red", _):
print("์๋ง ๋ง์ท์ต๋๋ค. ๊ณผ์ผ์ \(inputValue.fruit)์
๋๋ค.")
case (let color, "apple"):
print("๊ณผ์ผ๋ง ๋ง์ท์ต๋๋ค. ์์ \(color)์
๋๋ค.")
default:
print("์ค๋ต์
๋๋ค.")
}
//์๋ง ๋ง์ท์ต๋๋ค. ๊ณผ์ผ์ banana์
๋๋ค.
์ด๊ฑฐํ์ ์ ๋ ฅ ๊ฐ์ผ๋ก ๋ฐ๋ switch ๊ตฌ๋ฌธ
์ด๊ฑฐํ๊ฐ์ด ํ์ ๋ ๋ฒ์์ ๊ฐ์ ์ ๋ ฅ๊ฐ์ผ๋ก ๋ฐ๊ฒ ๋ ๋ ๊ฐ์ ๋์ํ๋ ๊ฐ case๋ฅผ ๊ตฌํํ๋ค๋ฉด default๋ฅผ ๊ตฌํํ์ง ์์๋ ๋๋ค.
๋ง์ฝ ๊ฐ์ ๋ํ ๋ชจ๋ case๋ฅผ ๊ตฌํํ์ง ์๋๋ค๋ฉด ํ์์ ์ผ๋ก default๋ฅผ ๊ตฌํํด์ผ ํ๋ค.
https://88yhtserof.tistory.com/25?category=966954
enum Fruit {
case apple, orange, banana
}
let myfavoriteFruit: Fruit = Fruit.apple
switch myfavoriteFruit {
case .apple:
print("๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ณผ์ผ์ ์ฌ๊ณผ์ด๋ค.")
case .orange:
print("๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ณผ์ผ์ ์ค๋ ์ง์ด๋ค.")
case .banana:
print("๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ณผ์ผ์ ๋ฐ๋๋์ด๋ค.")
}
์ด๊ฑฐํ์ case๊ฐ ์ถ๊ฐ๋ ๊ฒฝ์ฐ ํด๋น case๋ฅผ ์ฒ๋ฆฌํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ๋ด์ด์ค switch ๊ตฌ๋ฌธ
enum Fruit {
case apple, orange, banana
}
let myfavoriteFruit: Fruit = Fruit.apple
switch myfavoriteFruit {
case .apple:
print("๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ณผ์ผ์ ์ฌ๊ณผ์ด๋ค.")
case .orange:
print("๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ณผ์ผ์ ์ค๋ ์ง์ด๋ค.")
case .banana:
print("๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ณผ์ผ์ ๋ฐ๋๋์ด๋ค.")
@unknown case _:
print("๋ฌด์จ ๊ณผ์ผ์ ์ข์ํ๋์?")
}
๊ณต๋ถ ์๋ฃ
์ผ๊ณฐ - ์ค์ํํธ ํ๋ก๊ทธ๋๋ฐ 5ํ (SWIFT5)
728x90