프로그래밍 언어 활용
switch문
원본 76쪽
switch문은 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문이다.
• 형식
switch는 switch문에 사용되는 예약어로 그대로 입력한다.
switch(수식) ❶
수식 : ‘레이블1’ ~ ‘레이블n’의 값 중 하나를 도출하는 변수나 수식을 입력한다.
❷~❺번이 switch문의 범위이다. ‘{’로 시작해서 ‘}’로 끝난다. 반드시 입력해야 한다.
{ ❷
case 레이블1: ❸
case는 switch문에서 레이블을 지정하기 위한 예약어로 그대로 입력해야 한다.
레이블1 : ❶번 식의 결과가 될 만한 값 중 하나를 입력한다. 결과가 ‘레이블1’과 일치하면 이곳으로 찾아온다. 식의 결과가 5종류로 나타나면 case문이 5번 나와야한다. ❶번 식의 결과가 ❸번의 ‘레이블1’과 일치할 때 실행할 문장이다. switch문을 탈출하여 ❺번으로 간다. ❶번의 식의 결과가 ‘레이블2’와 일치하면 찾아오는 곳이다. ❶번의 식의 결과가 ❹번의 ‘레이블2’와 일치할 때 실행할 문장이다. switch문을 탈출하여 ❺번으로 간다.
실행할 문장1;
break;
case 레이블2: ❹
실행할 문장2;
break;
⋮
default
실행할 문장3;
} ❺
❶번의 식의 결과가 ‘레이블1’ ~ ‘레이블n’에 해당하지 않는 경우 찾아오는 곳이다.
case문의 레이블에는 한 개의 상수만 지정할 수 있으며, int, char, enum형의 상수만 가능하다.
case문의 레이블에는 변수를 지정할 수 없다.
break문은 생략이 가능하지만 break문이 생략되면 수식과 레이블이 일치할 때 실행할 문장부터 break문 또는 switch문이 종료될 때까지 모든 문장이 실행된다.
#include <stdio.h>
main( )
{
int jum = 85;
switch (jum / 10)
switch(수식)
jum을 10으로 나눠 결과에 해당하는 숫자를 찾아
결과도 정수이므로 결과는 8이다. 8에 해당하는 ❺번으로 이동하여 ❻, ❼번을 실행한다. ❶~❽번까지가 switch 조건문의 범위이다. 100점일 경우 ‘jum/10’의 결과인 10이 찾아오는 곳이지만 할 일은 ‘case 9:’와 같으므로 아무것도 적지 않는다. 아무것도 적지 않으면 다음 문장인 ❷번으로 이동한다. ‘jum/10’이 9일 경우 찾아오는 곳이다. ❸, ❹번을 실행한다.
{ ❶
case 10:
case 9: ❷
printf(“학점은 A입니다.\n”); ❸
“학점은 A입니다.”를 출력한다.
break; ❹
break를 만나면 switch문을 탈출하여 ❾번으로 이동한다. ‘jum/10’이 8일 경우 찾아오는 곳이다. ❻, ❼번을 실행한다.
case 8: ❺
printf(“학점은 B입니다.\n”); ❻
“학점은 B입니다.”를 출력한다.
break; ❼
case 7:
printf(“학점은 C입니다.\n”);
break;
case 6:
printf(“학점은 D입니다.\n”);
break;
default:
switch문을 탈출하여 ❾번으로 이동한다.
case 10~6에 해당되지 않는 경우, 즉 jum이 59 이하인 경우 찾아오는 곳이다.
printf(“학점은 F입니다.\n”);
} ❽
} ❾
“학점은 F입니다.”를 출력한다.
학점은 B입니다.
결과