조건문에서는 if 구문과 switch 구문을 이용한다.
let first: Int = 5
let second: Int = 4
if first > second{
print("first > second")
}else if first == second{
print("first == second")
}else {
print("first < second")
}
else if는 몇개가 이어져도 상관 없으며 else 블록은 없어도 상관 없다. 맨위의 if문의 조건을 충족하지 않으면 다음 else if문의 명령을 실행하고, else if문의 조건을 충족하지 않으면 다음 else 문을 실행하게 된다.
case 작성시 break 생략이 가능하다. case 내부의 코드를 모두 실행하면 break 없이도 switch 구문이 종료된다. switch 구문의 case를 연속 실행하려면 fallthrough키워드를 사용해야 한다.
switch 입력 값 {
case 비교 값1:
실행 구문
case 비교 값2:
실행 구문
//이번 case를 마치고 switch 구문을 탈출하지 않는다. 아래 case로 넘어감.
fallthrough
case 비교 값3, 비교 값4, 비교 값5: // 한번에 여러 값과 비교 가능.
실행 구문
break // break 키워드를 통한 종료는 선택 사항.
default: // else-if와 같은 개념. 한전된 범위가 명확지 않다면 default는 필수.
실행 구문
}
let stringValue: String = "Lian Neeson"
switch stringValue {
case "yoojin":
print("She is yoojin")
case "Jay"
print("She is yoojin")
case "Jenny", "Joker", "Nova":
print("He or She is \(stringValue)")
defalut:
print("\(stringValue) said 'I don't know who you are'")
}
// Liam Neeson said 'I don't know who you are'
switch 입력 값 {
case 비교 값1
//실행 구문
case 비교 값2
//실행 구문
// 이 case를 마치고 switch 구문을 탈출하지 않음. 아래 case로 계속 진행
fallthrough
case 비교 값3, 비교 값4, 비교 값5 // 한 번에 여러 값과 비교 가능
break // 탈출(종료)
default : // 한정된 범위가 명확하지 않다면 default사용 필수
//실행 구문
}
guard 조건 else {
//조건이 false면 실행
return || throw
}
if 문에 비해 가독성이 좋다. 단, if 문과 다르게 else를 항상 달아야 한다.
for i in 0...3 {
if i == 1 { print(i) }
else { continue }
}
for i in 0...3 {
guard i == 1 else { continue }
print(i)
}