기본 패턴
c
switch (menu) {
case 1:
printf("start\n");
break;
case 2:
printf("settings\n");
break;
default:
printf("unknown\n");
break;
}설명
switch는 하나의 정수식 값을 여러 상수 경우로 나눌 때 읽기 좋은 구조를 제공합니다.- 각
case는 정수, 문자, enum 상수처럼 컴파일 시점에 확정되는 값이어야 합니다. break가 없으면 다음case로 그대로 흘러가는데, 이를 fallthrough라고 합니다.- fallthrough는 의도적으로 쓸 수도 있지만, 대부분은 실수로 발생하므로 명확한 이유가 있을 때만 남기는 편이 좋습니다.
짧은 예제
c
#include <stdio.h>
int main(void) {
char grade = 'B';
switch (grade) {
case 'A':
case 'B':
printf("pass\n");
break;
case 'C':
printf("review needed\n");
break;
default:
printf("invalid grade\n");
break;
}
return 0;
}빠른 정리
| 항목 | 설명 |
|---|---|
switch (expr) | 하나의 값을 여러 경우로 분기 |
case value: | 특정 상수 값에 대한 실행 지점 |
break | 현재 switch 블록을 빠져나감 |
default | 어느 case에도 맞지 않을 때 실행 |
| fallthrough | break 없이 다음 case로 이어짐 |
주의할 점
break를 빠뜨리면 의도하지 않은 case까지 연달아 실행될 수 있습니다. 특히 메뉴 처리나 상태 전환 코드에서 자주 생기는 실수입니다.