swift 기초 문법 switch case 문 사용하기

swift flow control중 하나인 switch - case문을 알아봅시다. switch문은 특정 값을 받아 내가 미리 지정한 case 조건에 충족한 코드가 실행되는 분기문입니다. swift의 switch의 경우 C언어와는 달리 각각의 case 를 빠져나갈때에 break를 사용할 필요가 없습니다.

 

switch 기본 사용 방법

let num  = 5

switch num {
case 0:
	print("0 입니다.")
case 5:
	print("5 입니다.")
default:
	print("나머지 수 입니다.")
}

switch에 값 을 넣어주게 되면 내가 미리 지정해 놓은 case 들의 값들과 비교한 후 조건에 맞는 코드가 실행 됩니다. 위의 코드를 보면 switch 값으로 num 들어왔고 num은 5인 상수입니다. case 문 2개를 보면 0, 5가 있는걸 볼 수 있습니다. 이 값과 num의 값이 같은 경우의 코드가 실행되게 됩니다. switch 문에 입력된 num의 값은 5이기 때문에 print("5 입니다.") 코드가 실행됩니다.

출력 결과 : 5 입니다.

 

switch default

let num  = 10

switch num {
case 0:
	print("0 입니다.")
case 5:
	print("5 입니다.")
default:		//10은 0, 5 모두 아니기 때문에 default 아래 코드가 실행됩니다.
	print("나머지 수 입니다.")
}

그럼 default는 무엇일까요? num의 경우는 Int 데이터형 으로 0과 5이외에 수많은 수로 표현될 수 있습니다. 수많은 수를 switch에 모든 적을 수 는 없겠죠? 내가 원하는 조건 값외에 수가 입력이 되면 default로 빠져서 코드가 실행되게 됩니다. 

출력 결과 : 나머지 수 입니다.

 

switch range

let num = 7

switch num {
case 0:
	print("0 입니다.")
case 5:
	print("5 입니다.")
case 6...10: // swift에서는 case문에 범위를 지정할 수 있습니다.
	print("6 ~ 10 구간 입니다.")
default:
	pinrt("나머지 입니다.")
}

swift의 switch문의 경우는 for문에서 설명했던 범위도 조건으로 사용할 수 있습니다. C에서는 6 ~ 10까지의 수가 입력되었을때에 구간으로 표현하려면 case 문에 모든 수의 조건을 만들어줘야 하지만 swift의 경우 이렇게 범위로 표현 할 수 있습니다. num은 7인 상수입니다. 조건에는 0, 5 6 ~ 10이 있습니다. 7은 지정한 범위에서 만족하기 때문에 print("6 ~ 10 구간 입니다.")가 실행됩니다.

출력 결과 : 6 ~ 10 구간 입니다.

 

let grade = "3 grade"

switch grade {
case "1 grade", "2 grade", "3 grade":
	print("저학년 입니다.")
case "4 grade", "5 grade", "6 grade":
	print("고학년 입니다.")
default:
	print("초등학생이 아닙니다.")
}

swift의 switch문에서는 위의 코드 처럼 하나의 case문에 여러개의 값을 사용할 수도 있습니다. case문에서 실행되는 코드는 default를 제외하고 2군데 이지만, case 문의 조건 값들은 6개인것을 볼 수 있습니다. 범위로 표현 할 수 없을 때에는 이렇게 case에 값을 추가해서 사용하면 됩니다.

출력 결과 : 저학년 입니다.

 

let num = 10

switch num {
 case _ where num % 2 == 0:
    print("짝수")
default:
    print("홀수")
}

switch 문에서도 where 을 사용할 수 있습니다. _는 swift 에서 underscore는 생략의 의미로 많이 사용 됩니다. switch case 문 뿐만 아니라 예를 들면 for loop, 나중에 배울 함수에서도 사용 할 수 있습니다. 첫번째 case를 보면 underscore로 비워두고 where을 이용하여서 특정 조건 여기선 짝수 값을 조건으로 넣었습니다. 해당 10은 조건을 만족하는 값이기 때문에 출력 값은 짝수가 됩니다.

출력 결과 : 짝수.

 

 

그리드형(광고전용)

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band

댓글

Designed by JB FACTORY