안녕하세요~ 차니에요!
오늘은 Swift의 조건문에 대해 알아보도록 하겠습니다!
조건문이란 conditional statement라고 하여 조건에 따라 실행되는 프로그래밍 문법입니다.
* 샘플 데이터
struct Person {
let name: String
let age: Int
let gender: Gender
enum Gender{
case male, female
}
}
let channy = Person.init(name: "channy", age: 28, gender: .male)
예제를 위해 Person struct 및 channy 인스턴스를 만들어주었습니다.
1. if
if channy.age > 19 {
print("\(channy.name)는 성인이야")
} else if channy.age > 13 && channy.age < 20 {
print("\(channy.name)는 청소년이야")
} else if channy.age > 7 && channy.age < 13 {
print("\(channy.name)는 소아야")
} else {
print("\(channy.name)는 유아야")
}
차니 나이에 따라 성인, 청소년, 소아, 유아인지 출력하는 코드입니다.
조건문에 소괄호가 안 들어가는 점을 빼고 타 언어와 크게 다른 부분은 없습니다.
2. switch
switch channy.gender {
case .male:
print("\(channy.name)는 남성이야")
case .female:
print("\(channy.name)는 여성이야")
}
이번엔 차니 성별에 따라 남성인지 여성인지 출력해주는 코드입니다.
위 예제의 경우 조건은 차니의 성별인거고 값이 나올 수 있는 경우는 male과 female 입니다.
통상적으로 switch문은 case 끝에 break로 switch문을 종료시켜줘야 하는데 swift에서는 따로 적어주지 않아도 됩니다!
switch channy.gender {
case .male:
print("\(channy.name)는 남성이야")
fallthrough
case .female:
print("\(channy.name)는 여성이야")
break
print("\(channy.name) : 난 남자야!")
}
switch에는 fallthrough, break 예약어를 사용할 수 있습니다.
- fallthrough : 코드에서 만나면 case문 조건과 관계없이 다음 case문을 실행시킵니다.
- break : switch문을 종료합니다.
그렇다면 실행 결과가 예상이 되시나요?
3. if case, guard case
2021.07.01 - [iOS/Swift] - [Swift] if let vs guard let (기본편)
if let - guard let과 연관된 부분이니 잘 모르시겠다면 위 글을 참고해주세요~!
if case는 switch를 if/guard 문법으로 바꾼 것입니다.
자주 사용되는 문법은 아니니 참고만 하셔도 좋을 것 같습니다.
if case Person.Gender.male = channy.gender {
print("\(channy.name)는 남성이야")
} else {
print("\(channy.name)는 여성이야")
}
2번 switch 예제를 if case 문법으로 변환한 코드입니다.
func printGender() {
guard case Person.Gender.male = channy.gender else {
print("\(channy.name)는 남성이야")
return
}
print("\(channy.name)는 여성이야")
}
2번 switch 예제를 guard case 문법으로 변환한 코드입니다.
도움이 되셨다면 좋겠습니다.
다음 편은 이어서 반복문을 주제로 포스팅하도록 할게요~