Switch Statement

값의 일치 여부에 따라 값을 정하게 되는 식, 이런 특징으로 인해 패턴 매칭이나 value 매칭에 주로 사용된다.

case와 default에는 반듯이 실행할 문장을 작성해야한다.

값이 case 값과 일치하면 해당 문장을 실행하게되며 2개 이상의 case를 정할수도 있으며 하나라도 맞으면 매칭된것으로 인식합니다. 매칭된후 switch문은 종료됩니다.

default는 모든 나머지 경우의 수를 처리해준다.

let num = 1

switch num {
case 1:
   print("one")
case 2, 3:
   print("two or three")
default: // 모든 경우의 수를 처리해줘야하 하기때문에 위의 코드만 적을시 에러가 생기므로 default를 추가해야한다.
   print("others")
    // break 아무거도 안하고 싶을때 작성
}

where을 활용해 한번더 조건을 추가한다. value Binding할때 주로 활용 된다.

switch num {
case let n where n <= 10:
   print(n)
default:
   print("others")
}

Interval Matching

범위 연산자를 활용한 switch문

let temperature = -8

switch temperature {
case ..<10:
   print("Cold")
case 11...20:
   print("Cool")
case 21...27:
   print("Warm")
case 28... :
   print("Hot")
default:
   break
}

Fall Through

FallThrogh는 본 case를 실행하고 종료되어야하지만 다음 case의 매칭되는 값과 상관없이 이어지는 블록을 실행하게 됩니다.

let num = 2

switch num {
case 1:
   print("one")
case 2:
   print("two")
   fallthrough //  원래는 case와 일치한후 나머지 casesms 무시하지만 
   		   다음 case로 넘어가 실행됩니다.
case 3:
   print("three")
default:
   break
}

// two와 three가 출력된다.

let attempts = 10

switch attempts {
case ..<10:
   print("warning")
case 10:
   print("warning")
   fallthrough
default:
   print("reset")
}

//waring ,  reset이 출력된다.

좋은 웹페이지 즐겨찾기