반응형
일반적으로 (제가 배운거나 익히고 있는 프로그래밍 언어에서)는 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 |