์ค์ํํธ ์กฐ๊ฑด๋ฌธ(Conditional Statements)
- if๋ฌธ
- switch๋ฌธ
๐ if๋ฌธ
- if ๋จ๋ ์ ์ผ๋ก ์ฌ์ฉํด๋ ๋๊ณ , else if, else์ ์กฐํฉํด์ ์ฌ์ฉ.
- if ๋ค์ ์กฐ๊ฑด ๊ฐ์๋ Bool ํ์ ์ ๊ฐ๋ง ์์นํด์ผ ํ๋ฉฐ, ์กฐ๊ฑด ๊ฐ์ ๊ฐ์ธ๋ ์๊ดํธ๋ ์ ํ์ฌํญ.
[๊ธฐ๋ณธ ํํ]
if ์กฐ๊ฑด {
/* ์คํ ๊ตฌ๋ฌธ */
} else if ์กฐ๊ฑด {
/* ์คํ ๊ตฌ๋ฌธ */
} else {
/* ์คํ ๊ตฌ๋ฌธ */
}
let myAge = 20
if myAge < 50 { //์คํ
print("50 ๋ฏธ๋ง")
} else if myAge > 50 {
print("50 ์ด๊ณผ")
} else { // ๊ฐ๋ฐ์์ ์๋์ ๋ฐ๋ผ else๋ฌธ๋ ์๋ต ๊ฐ๋ฅ
print("50")
}
์ค์ํํธ์ ์กฐ๊ฑด์๋ ํญ์ Bool ํ์ ์ด ๋ค์ด์์ผ ํ๋ค. ์ค์ํํธ๋ ํ์ ๊ฒ์ฌ๋ฅผ ์๊ฒฉํ๊ธฐ ํ๊ธฐ ๋๋ฌธ์, ์๋์ ๊ฐ์ ์ฝ๋๋ ์๋ฌ ๋ฐ์.
number๋ Bool ํ์ ์ด ์๋ Int ํ์ ์ด๊ธฐ ๋๋ฌธ
var number = 0
if !number { // ์ปดํ์ผ ์๋ฌ!
// ...
}
if number == 0 { // ๋ง๋ ์ฝ๋!
// ...
}
๐ค if๋ฌธ์์ ๋ ผ๋ฆฌ ์ฐ์ฐ์ - AND
//if๋ฌธ์์ ๋
ผ๋ฆฌ ์ฐ์ฐ์ - AND
//1. && ์ฐ์ฐ์ - if (A) && (B) ์ฌ์ฉ
var tmp = 30
if (tmp > 0) && (tmp % 2 == 0) {
print("10 ์ด์์ ์ง์")
}
//2. ์ฝค๋ง(,) - if a, b ์ฌ์ฉ
if tmp > 0, tmp % 2 == 0 {
print("10 ์ด์์ ์ง์")
}
๐ switch๋ฌธ
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ ์ํ์ ์ ๊ฐ๋ง ๋น๊ตํ๋ ๊ฒ์ด ์๋๋ผ ๋๋ถ๋ถ์ ์ค์ํํธ ๊ธฐ๋ณธ ํ์ ์ ์ง์ํ๋ฉฐ, ๋ค์ํ ํจํด๊ณผ๋ ์์ฉ์ด ๊ฐ๋ฅ.
- switch๋ฌธ ํน์ง
- ๊ฐ๋ฅํ ๋ชจ๋ ์ฌ๋ก๋ฅผ ๋ฐ๋์ ๋ค๋ฃจ์ด์ผ ํ๋ค. ๋ฐ๋ผ์, default ๊ตฌ๋ฌธ์ ๋ฐ๋์ ์์ฑํด์ผ ํ๋ค.
- >>(์์ธ) ํ์ ์ ์ธ ๊ฐ(ex. enum์ case ๋ฑ)์ด ์๋ ๊ฒฝ์ฐ, case๋ก ๋ชจ๋ ๊ฒฝ์ฐ๊ฐ ๋ค ๊ตฌํ์ด ๋ ๊ฒฝ์ฐ
- ๋ช ์์ break๋ฅผ ํ์ง ์์๋ ์๋์ผ๋ก case๋ง๋ค break ๋จ.
- fallthrough ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ break๋ฅผ ๋ฌด์ ๊ฐ๋ฅ.
- ์ผํ(,)๋ฅผ ์ฌ์ฉํ์ฌ ํ๋์ case์ ์ฌ๋ฌ ํจํด ๊ฐ๋ฅ.
[๊ธฐ๋ณธ ํํ]
switch ๋น๊ต๊ฐ { //์
๋ ฅ๊ฐ! ๋น๊ต๋์
case ํจํด:
/* ์คํ ๊ตฌ๋ฌธ */
default:
/* ์คํ ๊ตฌ๋ฌธ */
}
let a : Character = "a"
switch a {
case "a":
//๋น๊ต๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํ์
์ ์ฌ์ฉํด์ผ ํ๋ค.
print("์ํ๋ฒณ์ ์ฒซ ๋ฒ์งธ ๋ฌธ์")
// ์ฌ์ค ์ผ์ด์ค๊ฐ ์ผ์นํ๋ฉด ์ค์์น ๊ตฌ๋ฌธ์ ์ข
๋ฃ๋๊ธฐ ๋๋ฌธ์ ๊ฐ Case ๋ง๋ค default์ ์๋ break ๊ฐ ์๋ต๋์ด ์๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
case "z":
print("์ํ๋ฒณ์ ๋ง์ง๋ง ๋ฌธ์")
default:
// ์ผ์ด์ค๊ฐ ๋ชจ๋ ๋ง์ง ์์ ๊ฒฝ์ฐ ๋์ค๋ ๋ถ๋ถ.
break
// break ์์ผ๋ฉด ์ค๋ฅ ๋ฐ์. ์๋, ๋ฌด์กฐ๊ฑด ์ ์ด๋ ํ๋์ ์คํ ๊ฒฐ๊ณผ๊ฐ ๋์์ผ ํ๋ค.
}
๐ค default๊ฐ ํ์ ์๋ ๊ฒฝ์ฐ! - ๋ชจ๋ ์ผ์ด์ค๋ฅผ ๋ค ๊ตฌํํ ๊ฒฝ์ฐ
let isTrue: Bool = true
switch isTrue{
case true:
print("true")
case false:
print("false")
default: //์๋ฌ๋ ์๋๊ณ warning ๋ฐ์
print("ERROR")
}
enum School{
case primary, elementary, middle, high
}
let ํ๋ ฅ: School = School.middle
switch ํ๋ ฅ {
case .primary:
print("์ ์น์")
case .elementary:
print("์ด๋ฉ")
case .middle:
print("์ค๋ฉ")
case .high:
print("๊ณ ๋ฉ")
}
๐ค switch๋ฌธ์์ ๋ฒ์ ์ฐ์ฐ์ ํ์ฉํ๊ธฐ
let Number = 100
switch Number {
case 0:
print("zero")
case 1..<100: //100๋ฏธ๋ง
print("1~99")
case 100:
print("100")
case 101...Int.max:
print("over 100")
default: //default๊ตฌ๋ฌธ ์์ผ๋ฉด ์ค๋ฅ๋ฐ์!!
print("unknown")
}
// 100
๐ค where ํค์๋ ์ฌ์ฉํ์ฌ case ์กฐ๊ฑด ํ์ฅํ๊ธฐ
let ์ง๊ธ: String = "์ฌ์"
let ์ฐ์ฐจ: Int = 1
let ์ธํด์ธ๊ฐ: Bool = false
switch ์ง๊ธ {
case "์ฌ์" where ์ธํด์ธ๊ฐ==true:
print("์ธํด์
๋๋ค")
case "์ฌ์" where ์ฐ์ฐจ<2 && ์ธํด์ธ๊ฐ==false:
print("์ ์
์ฌ์์
๋๋ค")
default:
print("์ฌ์ฅ")
}
๐ค ํํ switch case ๊ตฌ์ฑ
typealias tupleSwitch = (name:String, age:Int)
let tupleValue : tupleSwitch=("yeon",20)
switch tupleValue{
case("yeon",20):
print("๋์ผ๋")
default:
print("์๋์ผ")
}
728x90
๋ฐ์ํ