본 시리즈는 아래 강의자료를 기반으로 작성되었습니다.
https://www.boostcourse.org/mo122/joinLectures/38564
오늘은 조건문, 반복문에 대하여 학습했다. 이러한 제어구문 같은 경우 다른 언어들과 크게 다른 부분이 없는 것 같다. (굳이 따지자면 파이썬 처럼 표현식에 괄호가 빠진 것이 특징이다)
하지만 switch
구문의 경우에는 다른 언어들과 다르게 훨씬 다양한 패턴 응용이 가능하여 훨씬 유용하게 쓰일 것 같다.
if-else
구문→ 다른 언어들과 다를 건 없지만, 파이썬 처럼 조건 표현식에 괄호가 필요 없다.
let someInteger = 100
if someInteger < 100 {
print("100 미만")
} else if someInteger > 100 {
print("100 초과")
} else {
print("100")
} // 100
* 조건 표현식에는 항상 Bool 타입이 들어와야 함
switch
구문→ 타 언어에서 기본적으로 사용하던 정수 타입 값 비교 뿐만 아니라 대부분의 스위프트 기본 타입을 지원하고, 다양한 패턴과도 응용이 가능하다.
// 범위 연산자 쌉가능
switch someVar {
case 0:
print("zero")
case 1..<100:
print("1~99")
case 100:
print("100")
case 101...Int.max:
print("over 100")
default:
print("unknown")
} // 100
// 대부분 기본 타입 (e.g. String) 을 사용할 수 있음
switch "haero" {
case "jake":
print("jake")
case "mina":
print("mina")
case "haero":
print("H43RO")
default:
print("unknown")
} // H43RO
for-in
구문→ 자바 및 코틀린의 for-each 구문와 유사하다. 특징으로는 Dictionary 타입을
넣으면 이터레이션 아이템으로 Key-Value 튜플이 들어온다.
var integers = [1, 2, 3]
let people = ["H43RO": 10, "LULU": 15, "LALA": 12]
for integer in integers {
print(integer)
}
// 1
// 2
// 3
// Dictionary 이터레이션 아이템은 key-value 로 구성된 튜플
for (name, age) in people {
print("\(name): \(age)")
}
// H43RO: 10
// LULU: 15
// LALA: 12
while
구문→ 다른 언어들과 다를 바 없다.
while integers.count > 1 {
integers.removeLast()
}
repeat-while
구문→ 다른 언어들의 do-while
구문과 유사하다.
repeat {
integers.removeLast()
} while integers.count > 0