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 |