C언어 switch문

프로그래밍/C 2018.12.13 댓글 Plorence
switch문

switch문은 사용자가 선택해서 원하는 방향으로 코드를 실행할 수 있습니다. (선택적 실행)
어느 특정 범위가 아닌 값이 정해져있다면 if문보다 깔끔할 수 있습니다.

사용방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
switch(변수)
{
case 1:
//실행영역
break;
case 2:
//실행영역
break;
case 3:
//실행영역
break;
case 4:
//실행영역
break;
case 5:
//실행영역
break;
default:
//실행영역
}
보통 변수타입은 int형이 쓰이고,변수값에따라 케이스 레이블 에맞는 코드를 실행합니다.
변수값이 1이라면 case 1의 실행영역을 실행합니다.
case 1,2,3,4,5 이런식으로 있는데 이런걸 레이블(label)이라고 합니다. 

default 레이블은 변수값과 일치하는 레이블이 없을때 실행됩니다.

만약 break;을 안쓰면 해당 레이블에서 아래에있는 코드를 break만날때 까지 쭉실행합니다.
만약 m,M을 입력해도 Morning 이라는 문자열을 출력하고싶다면 아래의 예제를 참고하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int main(void)
{
    int num1;
    scanf("%d",&num1);
    switch(num1)
    {
        case M:
        case m:
            printf("morning \n");
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
        default:
            
    }
    
}
결국은 break문은 선택적으로 적절하게 잘써야합니다.(필요에 따라)
if~else문을 써도 가능한거지만 분기가 많을수록 switch문을 사용할려고 노력해야합니다.
switch문으로 표현하기 애매한 상황에서는 if~else문을 사용해야합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main(void)
{
    int num1;
    scanf("%d",&num1);
if(num1 >= 0 && < 10){
printf("0과 10사이의 숫자입니다.")    
}
else{
printf("0과 10사이의 숫자가 아닙니다.")
}
    
}
(2번예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int main(void)
{
    int num1;
    scanf("%d",&num1);
    switch(num1)
    {
        case ?:
            break;
        case ?:
            break;
        case ?:
            break;
        case ?:
            break;
        case ?:
            break;
        default:
            
    }
    
}
(3번예제)
2번예제처럼 switch문으로 사용할려면 애매합니다. 이럴때는 if문을 사용해야 합니다.


댓글