이 오류는 case
레이블이 switch
문 내부가 아닌 곳에서 사용되었을 때 발생합니다. C언어에서 case
는 반드시 switch
문과 함께 사용되어야 하며, 단독으로 사용할 수 없습니다.
일반적인 실수로는 switch 문 없이 case만 단독으로 사용하거나, 중괄호 범위 밖에서 잘못 작성하는 경우입니다.
● 오류 예제
#include <stdio.h>
int main() {
int num = 2;
case 1:
printf("One\n");
break; // 오류 발생
return 0;
}
위 코드에서 case는 switch 없이 단독으로 사용되었기 때문에 다음과 같은 오류가 발생합니다.
error: case label not within a switch statement
● 해결 방법
case
는 반드시 switch
문 내부에 위치해야 합니다. 아래는 수정된 예시입니다.
#include <stdio.h>
int main() {
int num = 2;
switch (num) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
default:
printf("Other\n");
}
return 0;
}
출력 결과:
Two
● 실전 팁
case
키워드는 반드시switch
문 내부에서만 사용할 수 있습니다.case
구문이 switch 외부에 있는 경우, 들여쓰기나 중괄호 누락 여부를 점검해 보세요.switch
와case
의 문법 구조를 정확히 익히고 사용하세요.
case
는 switch
문과 함께 동작해야 하며, 단독으로 사용할 수 없다는 점을 기억해야 합니다. 단순한 오타나 구조상의 실수로도 자주 발생하는 오류이므로 문법 구조를 정확히 확인하는 습관이 필요합니다.