Switch

작성일

Switch

기본적인 사용 법은

switch <비교 대상> {
  case <비교 패턴1> :
        <비교 패턴1이 일치 했을 때 실행할 구문>
  case <비교 패턴2>, <비교 패턴3> :
        <비교 패턴2 또는 3이 일치했을 때 실행할 구문>
  default :
        <어느 비교 패턴과도 일치하지 않았을 때 실행할 구문>
}

이런 방식으로 사용하는데 특이한점은, 어느 하나라도 반드시 일치해야 한다.
만약에 없을 경우를 대비하여 default구문을 꼭 만들어줘야 한다. 따라서 default 구문이 없으면 switch구문은 오류가 발생한다.

var value = (2, 3)

switch value {
  case let (x, 3) :
      print("튜플의 두 번째 값이 3일 떄 첫 번째 값은 \(x)입니다.")
  case let (3, y) :
      print("튜플의 첫 번째 값이 3일 떄 두 번째 값은 \(y)입니다.")
  case let (x, y) :
      print("튜플의 값은 각각 \(x), \(y)입니다")
}

실행결과

튜플의 두 번쨰 값이 3일 때 첫 번째 값은 2입니다.

다른 예시로 글이 작성된 시간(초)을 범위에 따라 그룹지어 표현해주는 구문을 작성해 보면

var passtime = 1957

switch passtime {
  case 0..<60 :
      print("방금 작성된 글입니다")
  case 60..3600 :
      print("조금 전 작성된 글입니다")
  case 3600..<86400 :
      print("얼마 전 작성된 글입니다")
  default :
      print("예전에 작성된 글입니다")
}

실행결과

조금 전 작성된 글입니다

이런 방식으로도 활용할 수 있다.