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

[C언어][Error] 043. ‘else’ without a previous ‘if’ – if 없이 else 사용

by about_IT 2025. 4. 27.

이 오류는 else 문이 앞선 if 문 없이 단독으로 사용되었을 때 발생합니다. C언어에서 else는 반드시 if 문과 함께 사용되어야 하며, 앞에 if 블록이 존재하지 않으면 컴파일러는 문맥을 해석할 수 없어 오류를 발생시킵니다.


이는 보통 if 문을 주석 처리했거나, 중괄호 구조가 어긋났을 때 자주 발생합니다.



● 오류 예제

#include <stdio.h>

int main() {
    else {
        printf("조건이 없는데 else만 존재합니다.\n");
    }
    return 0;
}

컴파일 시 다음과 같은 오류 메시지가 출력됩니다.

error: ‘else’ without a previous ‘if’


● 해결 방법

else는 반드시 if 문 바로 뒤에 와야 하며, 중간에 다른 문장이 있거나, if가 누락되면 안 됩니다.

#include <stdio.h>

int main() {
    int num = 5;

    if (num > 0) {
        printf("양수입니다.\n");
    } else {
        printf("0 또는 음수입니다.\n");
    }
    return 0;
}

출력 결과:

양수입니다.


● 실전 팁

  • else는 항상 if 문 다음에 위치해야 하며, 둘 사이에 다른 문장이 끼어들면 오류가 발생합니다.
  • 가독성을 위해 ifelse는 항상 함께 작성하고, 중괄호 구조를 명확히 하세요.
  • else가 혼자 있는 경우는 문법적으로 유효하지 않으므로, 반드시 앞선 if를 확인하세요.

C언어는 문맥을 정확히 이해하는 언어이기 때문에, if 없이 else를 사용할 수 없습니다. 항상 조건 분기 구조가 올바르게 연결되어 있는지 확인하고 작성해야 합니다.