[Swift] 조건문에 대해 알아보자

안녕하세요~ 차니에요!

 

오늘은 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문 뒤의 조건문이 참(true)라면 해당 블럭이 실행됩니다.

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 뒤에 값(value)이 들어가고 값이 나올 수 있는 경우를 case로 명세해줍니다.

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 문법으로 변환한 코드입니다.

 

도움이 되셨다면 좋겠습니다.

다음 편은 이어서 반복문을 주제로 포스팅하도록 할게요~