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

+ Recent posts