이 오류는 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
문 다음에 위치해야 하며, 둘 사이에 다른 문장이 끼어들면 오류가 발생합니다.- 가독성을 위해
if
와else
는 항상 함께 작성하고, 중괄호 구조를 명확히 하세요. else
가 혼자 있는 경우는 문법적으로 유효하지 않으므로, 반드시 앞선if
를 확인하세요.
C언어는 문맥을 정확히 이해하는 언어이기 때문에, if
없이 else
를 사용할 수 없습니다. 항상 조건 분기 구조가 올바르게 연결되어 있는지 확인하고 작성해야 합니다.