본문 바로가기
2023년 이전/swift

swift의switch 문

by JeongUPark 2020. 7. 12.
반응형

일반적으로 (제가 배운거나 익히고 있는 프로그래밍 언어에서)는 switch문은 다음과 같습니다.

switch integerValue {
case 0:
    // todo
    break;
case 1 ..< 11:
    // todo
    break;
case Int.min ..< 0 , 101 ..< Int.max :
    // todo
    break;
default:
    // todo
    break;
}

위와 같이 각 case 마다 break나 return으로 그 종료를 명시해주거나 break나 return을 쓰지 않으면 다음 case의 todo가 동작 하였습니다.

 

그런데swift의 switch문은 break는 옵션이라 없어도 각 case에서 동작후 종료가 됩니다. 만일 다음 case까지 동작을 원한다면 fallthrough를 사용하여 명시해 주어야 합니다.

 

let integerValue : Int = 5

switch integerValue {
case 0:
    print("Value == Zero")
case 1 ..< 11:
    print("Value == 1~10")
    fallthrough
case Int.min ..< 0 , 101 ..< Int.max :
    print("Value < 0 or Value > 100")
    break
default:
    print("10 < Value <= 100")
}

그래서 위의 코드를 실행하면  이런 결과가 나옵니다.

Value == 1~10

Value < 0 or Value > 100

 

 switch문의 입력 값으로 숫자 뿐만아니라 문자, 문자열, 열거형, 튜플, 범위, 패턴이 적용된 타입등 다양한 타입의 값도 사용 가능 합니다.

그리고 각 case에 해당하는 실행 코드가 비어있다면 컴파일 오류가 발생합니다.

where을 사용하여 case의 조건을 확장 할 수도 있습니다.

 

let level : String = "사원" // 직급
let year : Int = 1 // 연차
let intern : Bool = false

switch level {
case "사원" where intern :
    print("인턴 사원")
case "사워" where year < 2 && !intern :
    print("신입 사원")
default :
    print("사원이 아니다.")
}

위의 결과는 신입 사원 입니다.

반응형

'2023년 이전 > swift' 카테고리의 다른 글

music player 만들기  (0) 2020.09.20
클로저  (0) 2020.08.30
구문 이름표  (0) 2020.07.12
튜플,배열, 딕셔너리,세트, 열거형  (0) 2020.07.05