조건문이란?
- 주어진 조건에 따라 코드의 흐름을 제어하는 것이다.
- 스위프트의 조건문에는 if-else 문, switch 문, guard 가 있다.
if 문
if 조건식1 {
// 조건식1을 만족했을 때 실행되는 구문
} else if 조건식2{
// 조건식2를 만족했을 때 실행되는 구문
} else {
// 아무 조건식도 만족하지 못했을 때 실행되는 구문
}
Switch 문
- 패턴 기반으로 실행된다.
- 하나의 패턴이 일치하면 스위치 문은 종료된다.
switch 비교대상 {
case 패턴1:
// 패턴1 일치할 때 실행되는 구문
case 패턴2:
// 패턴2 일치할 때 실행되는 구문
case 패턴3:
// 패턴3 일치할 때 실행되는 구문
default:
// 아무 패턴도 일치하지 않을 때 실행되는 구문
}
- fallthrough 키워드를 사용하여 조건이 맞는 case 문 실행 후, 그 다음 case 문의 조건이 맞지 않아도 해당 구문을 실행한다.
- 아래 코드에서, num 상수에 3을 할당하면 1~5 출력 후, 6~10 이 출력된다.
- 이는 fallthrough 키워드 때문에 첫번째 case 구문만 실행 후 종료되는 것이 아니라 두 번째 case 문까지 실행 후 종료되기 때문이다.
let num = 3
switch num {
case 1...5:
print("1~5")
fallthrough
case 6...10:
print("6~10")
case 11...:
print("11~")
default:
print("nothing")
}
// 1~5
// 6~10
- 비교 패턴에 범위 연산자 사용이 가능하다.
let num = 3
switch num {
case 1...5:
print("1~5")
case 6...10:
print("6~10")
case 11...:
print("11~")
default:
print("nothing")
}
// 1~5
비교 연산자의 종류는 아래와 같다.
- A...B → A 이상 B 이하
- A.. <B → A 이상 B 미만
- A... → A 이상
- ... A → A 이하
- .. <A → A 미만
guard
- guard는 if 문과 사용법이 비슷하다.
guard 조건 else {
// 조건을 만족하지 못할 때 실행되는 구문
}
- 다만 guard 의 경우, guard 뒤에 나오는 조건을 만족하지 못할 때 구문이 실행된다.
- 그리고 guard 는 함수 내에서 사용되며 잘못된 값이 함수에 들어오는 것을 방지하는 것을 목적으로 한다.
- 아래 코드에서 name 이 nil 이 아니라는 조건을 만족하지 못하면 else 실행되면서 함수는 종료된다.
- name에 nil 이 아닌 "Amy" 값을 넘겼기 때문에 함수가 종료되지 않고 print(name)을 수행한다.
func printName(name: String) {
guard name != nil else {
return
}
print(name)
}
let name = "Amy"
printName(name: name)
// Amy
참조
Fast Campus - 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.
'프로그래밍 > 스위프트' 카테고리의 다른 글
[Swift] 반복문 (0) | 2022.06.28 |
---|---|
[Swift] 함수 (Function) 란? (0) | 2022.02.10 |
[Swift] 컬렉션 타입 (0) | 2022.02.10 |
[Swift] 스위프트의 기본 데이터 타입 (0) | 2022.02.10 |
[Swift] 상수와 변수 (0) | 2022.02.09 |