[iOS / Swift] 조건문(if문, switch문, guard let)
if문
간단한 예시로 코드를 짜봄. a와 b의 if조건문은 성립하기 때문에 정답으로 출력됐지만,
c는 "기영"이기 때문에 기철이 아니라서 else 문이 출력됨.
else if 문도 한 번 예시코드를 보자면,
이런식으로 age 가 8세이상 14세 미만일 경우 "초등학생", 17세 미만일경우 "중학생", 20세 미만일 경우 "고등학생" 으로 표현함
마지막은 대학생이라고 해서는 안됨(30세일수도 있기 때문) 하지만 귀찮아서 대학생으로 그냥 적음.
그리고 if let 과 아래에 나올 guard let은 옵셔널 값을 확인하고 해당 값을 일시적으로 변수나 상수에 바인딩하는 Optional Binding 기능을 수행함. 옵셔널은 다음에 공부를 하고 정리할 것이니 일단은 가볍게 정리하고 패스함.
여기서 optionalInt: Int? 까지만 작성했다면 값은 nil이 되어서 "숫자가 없음"이 출력될 것임
옵셔널이란?
Swift에서 옵셔널은 값이 존재할 수도, 존재하지 않을 수도 있는 상황을 표현하는 타입.
값이 없을 수 있는 변수나 상수를 명시적으로 표시해서 예기치 않은 에러를 방지하고, 안전한 코드 작성이 가능.
Optional을 선언할 때 초기값을 지정하지 않으면 자동으로 nil이 할당됨..
nil이 할당된 값에 접근하는 경우 런타임 에러가 발생하기 때문에 옵셔널 바인딩, 옵셔널 체이닝, 옵셔널 기본값 사용 등을 통해 nil 값에 대한 처리가 필요한 것임.
guard let
코드를 이렇게 작성하고 age가 18보다 크거나 같지 않을 경우(즉, 미만일 경우) "성인이 아님"이 출력.
만약 조건을 만족하지 못한다면 "성인임" 이 출력.
아래 checkAge를 16이 들어간다면 성인이 아님, 20이 들어가면 성인임 이 출력됨.
옵셔널에 관련된 코드를 보겠음.
마찬가지로 18세 미만일 경우 "나이가 적거나 없음"을 출력, 이름이 없으면 "이름이 없음"을 출력.
두 조건을 모두 만족한다면 "이름: \(name), 나이는 \(age)세."를 출력함
Switch문
예시코드를 먼저 보자면,
해당 a의 변수는 String 타입의 "A"임.
그래서 a가 "A"일 경우 "A"를 출력, "a"일 경우에는 "a"를 출력, case에 해당하는 것이 없으면 "???" 출력
해당 b의 변수는 String타입의 "b"임.
그래서 b가 A~Z안에 포함되어 있을 경우엔 "대문자"를 출력, a~z안에 포함되어 있을 경우엔 "소문자"를 출력.
'Swift 언어 > Swift 문법 정리' 카테고리의 다른 글
[iOS / Swift] 옵셔널(Optional) (3) | 2024.10.11 |
---|---|
[iOS / Swift] 함수(Function) (0) | 2024.10.11 |
[iOS / Swift] 컬렉션 타입(Array, Dictionary, Set) (0) | 2024.10.01 |
[iOS / Swift] 반복문(for문, while문) (0) | 2024.09.30 |
[iOS / Swift] 상수와 변수, 데이터 타입 (0) | 2024.09.30 |