프로그래밍/C 기초

[C언어 강좌] #12 - switch문

도끼_Dokki 2016. 12. 18. 09:00

안녕하세요. switch문을 배워볼건데요.


switch문을 보기전에 if - else문을 잠깐 다시 봅시다.



#include <stdio.h> 


int main(void) {

int num = 20;

if(num == 10) {

printf("10입니다.");

} else if(num == 20) {

printf("20입니다.");

} else if(num == 30) {

printf("30입니다.");

}  else {

printf("원하는 값이 아닙니다..");

}

}


출력결과 : 20입니다.

if 와 else를 이용해서 값을 비교해보면서 같은값일경우 출력시키도록 했습니다.

하지만 이걸 switch문으로 작성할수도 있습니다.

#include <stdio.h> 

int main(void) {
int num = 20;
switch(num) {
case 10: 
printf("10입니다.");
break;
case 20: 
printf("20입니다.");
break;
case 30: 
printf("30입니다.");
break;
default: 
printf("원하는 값이 아닙니다..");
}
}

출력결과 : 20입니다.

아까의 if - else문보다 훨신 가독성이 좋아졌습니다.
그리고 같은기능을 합니다.
switch(A)를 넣고 case B를 넣을경우 A가 B와 같은값일때 B의 코드로 이동합니다. 그리고 쭉 진행합니다.
코드를 보면 break;가 있습니다. for문과 while문에서 break를 사용하면 바로 부서버리고 탈출했었죠?
switch에서도 마찬가지입니다. 만약 저 break가 없으면 값이 10일때 "10입니다. 20입니다. 30입니다. 원하는값이 아닙니다"가 모두 출력됩니다. 해당하는 코드에서부터 아래로 모두 실행시켜버리기때문에 break;로 원하는부분에서 끊어주면 됩니다.



break;를 없앤 이 경우 값이 20이기때문에 case 20:부터 아래로 모두 실행됐습니다.