switch 사용법
C에서 if~else말고 여러 조건을 간결하게 표현 할 수 있는 제어문이 있다.
바로 switch라는 것인데 사용 하는데 제약이 있긴 하지만 if ~ else if ~ 를 여러 번 써서 표현 하는 것 보다 빠르고 보기 좋다.
switch 사용법 |
switch의 사용법을 간단히 표현 하면 다음과 같다.
switch( 변수 값 ) { case 조건 : break; case 조건2: break; default: } |
switch 안에 조건을 판단 할 변수 값을 넣는다.
case 조건 : -> 조건에 변수의 값을 표시한다.
변수 값이 조건이면 case 조건을 break를 만날 때 까지 실행 한다.
default는 조건에 맞는 것이 없으면 실행 된다.
다음 switch를 사용한 예를 보도록 한다.
#include <stdio.h> int main(int argc, char *argv[]) { int value = 1;
switch( value ) { case 0 : printf(" value is 0 \n"); break;
case 1 : printf(" value is 1 \n"); break;
case 2 : printf(" value is 2 \n"); break;
default : printf(" value is default \n"); }
return 0; } |
vaule 값이 1이다.
switch( value ) 는 value의 값을 보고 조건을 판단 하겠다는 뜻이다.
case 0 : -> value 가 0일 경우에 동작한다. if( value == 0 ) 과 동일 하다.
case 1 : -> value 가 1일 경우에 동작 하며 value 값이 1이기 때문에 그 안에
printf(" value is 1 \n"); 를 수행 후 break로 switch를 빠져 나온다.
default -> case 가 0, 1, 2 3가지를 뒀는데 만약 value 값이 0, 1, 2도 아니면 수행이 된다.
이해를 돕기 위해 아래는 동일한 내용을 if문과 switch문으로 각각 구현했다.
switch( value ) { case 0 : printf(" value is 0 \n"); break;
case 1 : printf(" value is 1 \n"); break;
default : printf(" value is default \n"); } |
if( value == 0 ) printf(" value is 0 \n"); else if( value == 1 ) printf(" value is 1 \n"); else printf(" value is default \n"); |
각 case 에 실행문 뒤에 break가 없을 경우 |
case 0 : printf(" value is 0 \n"); break; |
여기에서 break 문이 빠지면 어떻게 될까?
다음 예제를 보면서 알아보자
#include <stdio.h> int main(int argc, char *argv[]) { int value = 1;
switch( value ) { case 0 : printf(" value is 0 \n"); break;
case 1 : printf(" value is 1 \n");
case 2 : printf(" value is 2 \n"); break;
default : printf(" value is default \n"); }
return 0; } |
case 1에 진입이 되고 printf문을 한 번 실행 후 break문이 없어 계속 다음 케이스를 수행 하게 된다.
그래서 결과 값이 value is 1, value is 2 두 개가 표시 된다.
break 문이 빠지면 엉뚱하게 수행 되면 꼭 넣도록 한다.
'프로그램 > C' 카테고리의 다른 글
[C] 배열 사용법 (0) | 2017.03.22 |
---|---|
[C] goto 제어문 사용법 (0) | 2017.03.18 |
[C] continue, break 사용법 (0) | 2017.03.16 |
[C] if ~ else 제어문 사용법 (0) | 2017.03.15 |
[C] for 반복문 사용법 (0) | 2017.03.14 |