코드를 실행해야 하거나 실행하지 말아야 하는 상황,
혹은 특정 명령어를 반복해서 실행해야 할때 조건문과 반복문
즉 흐름 제어를 하게 된다.
조건문은 if문 과 switch문, guard문 이 있다.
if
먼저 if문은 if, else 등의 키워드로 사용할 수 있고
else if는 몇개를 사용해도 상관 없으며 else 블록은 생략해도 무방하다.
먼저 오는 조건중 어느 하나라도 충족이 되었다면 다음 조건들의 코드들은 무시한다.
또한 조건의 값은 Bool 타입이어야 한다.
let lhs = 5
let rhs = 6
if lhs < rhs {
print("lhs의 값이 더 작다")
} else if lhs > rhs {
print("lhs의 값이 더 크다")
}
let value = false
if value {
print("value는 true 입니다.")
}
switch
swift에서 break 키워드 사용은 선택사항이다.
case를 연속 실행하려면 fallthrough 키워드를 사용한다.
case에 들어갈 비교 값은 입력 값과 데이터 타입이 같아야한다.
let value = 2
switch value {
case 0:
print("값은 0입니다.")
break
case 1:
print("값은 1입니다.")
break
case 2:
print("값은 2입니다.")
break
default:
print("값은 0, 1, 2 가 아닙니다.")
break
}
모든 case에 대한 처리를 해주었다면 default는 해주지 않아도 된다.
enum MyCase {
case mon
case tue
case thr
}
let value = MyCase.mon
switch value {
case .mon:
print("mon")
fallthrough
case .tue:
print("mon and tue")
case .thr:
print("thr")
}
guard
guard문이라고 해서 크게 다르지 않다.
다만 else 키워드 뒤에 { return }을 붙혀줘야만 한다.
let value = 5
guard value > 0 else { return }
print("value는 0보다 큽니다.")
혹시 명시된 조건에 해당하지 않을때
return과 함께 실행할께 있다면
let value = 5
guard value == 0 else {
print("value는 0이 아닙니다.")
return
}
요런식으로 사용할 수도 있다.
'Swift_Grammar' 카테고리의 다른 글
[Swift_Grammar] Optional (0) | 2020.12.28 |
---|---|
[Swift_Grammar] 함수 (0) | 2020.12.27 |
[Swift_Grammar] 흐름 제어 (2) (0) | 2020.12.25 |
[Swift_Grammar] Data Type (0) | 2020.12.21 |
[Swift_Grammar] 변수와 상수 (0) | 2020.12.19 |