4-5 switch 문

if문에서는 조건식이 참,거짓이냐에 따라서 실핼할 문장이 둘 중에서 하나이다. 

switch문은 값에 따라서 여러 경로 중에서 하나를 선택 할 수 있는 switch문이 존재한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
switch (제어식)
{
    case c1:
        문장1;
        break;
 
    case c2:
        문장2;
        break;
 
    case c3:
        문장3;
        break;
 
    ...
    default:
        문장d
        break;
}
cs

switch에서는 제어식을 계산하여 그값을 각 case절의 c1, c2등과 비교한다. 여기서 c1, c2,...은 정수여야한다. 이중 제어식의 값과 일치하는 값이 있으면 관련된 case의 문장들이 차례로 실행하다가 break에 도달하면 종료된다. 

일치하는 정수값이 없으면  default:절이 실행된다.



//예시 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int input;
 
scanf("%d"&input);
 
switch (input)
{
    case 0// 0을 입력
        printf("없음");
        break;
 
    case 1// 1을 입력
        printf("하나");
        break;
 
    case 2// 2을 입력
        printf("둘");
        break;
 
    ...
    default:
        printf("많음");
        break;
}
cs




break문이 없으면 선택된 case절 안의 문장들을 실행한 다음에 빠져나가지 않고 다음case절의 문장을 실행하게된다. break문을 꼭 넣을것을 명심해라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 
int input;
 
scanf("%d"&input);
 
switch (input)
{
    case 0// 0을 입력
        printf("없음\n");
        break;
 
    case 1// 1을 입력
        printf("하나\n");
        
 
    case 2// 2을 입력
        printf("셋\n");
        break;
 
    ...
    default:
        printf("많음\n");
        break;
}
cs

실행 결과 : 하나

               셋



이러한 switch문은 if-else문으로 바꿀 수 있다. 바꾸는건 4-4 if else문을 보고 직접 만들어보아라.


정답 : https://recircle-00.tistory.com/24   암호 : switch451


--switch문은 정수값으로 계산되어야한다. 따라서 변수, 변수가 들어간 수식, 실수, 문자열은 넣으면 안되지만 

'a'등의 문자는 아스키코드값이 정수이기때문에 사용가능하다.


--break문을 꼭 넣어라.



'C 프로그래밍 > 4. 조건문' 카테고리의 다른 글

4-6 goto문  (0) 2019.05.18
4-5-1 switch문 ==> if-else 변환 예시  (0) 2019.05.18
4-3 if-else 문  (0) 2019.05.16
4-2 if문  (0) 2019.05.16
4-1 제어문  (0) 2019.05.16