본문 바로가기
프로그래밍언어/C언어[Error]

[C언어][Error] 030. case label not within a switch statement or outside switch – switch 없이 case 사용

by about_IT 2025. 4. 27.

이 오류는 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 외부에 있는 경우, 들여쓰기나 중괄호 누락 여부를 점검해 보세요.
  • switchcase의 문법 구조를 정확히 익히고 사용하세요.

caseswitch 문과 함께 동작해야 하며, 단독으로 사용할 수 없다는 점을 기억해야 합니다. 단순한 오타나 구조상의 실수로도 자주 발생하는 오류이므로 문법 구조를 정확히 확인하는 습관이 필요합니다.