프로그래밍언어/C언어[Error]
[C언어][Error] 064. expected ‘while’ before ‘{’ token – while 없이 { 사용
about_IT
2025. 4. 29. 00:24
이 오류는 do-while 반복문을 작성할 때, while 키워드를 생략하거나 문법 순서를 지키지 않아 발생합니다.
C언어에서는 do 문 다음에 코드 블록 {}을 작성하고, 그 블록이 끝난 뒤 반드시 while(조건); 구문이 이어져야 문법이 완성됩니다.
만약 while이 누락되거나, while이 블록 뒤에 오지 않으면 컴파일러는 오류를 발생시킵니다.
● 오류 예제
#include <stdio.h>
int main() {
do
{
printf("반복합니다.\n");
} // 오류: while 누락
return 0;
}
컴파일 시 다음과 같은 오류 메시지가 발생합니다.
error: expected 'while' at end of input
error: expected 'while' before 'return'
※ 참고: { 앞이 아니라 } (코드 블록 끝) 뒤에 while이 와야 합니다.
● 해결 방법
do-while 문은 다음과 같은 정확한 형태로 작성해야 합니다:
#include <stdio.h>
int main() {
int i = 0;
do {
printf("반복합니다.\n");
i++;
} while (i < 3);
return 0;
}
출력 결과:
반복합니다.
반복합니다.
반복합니다.
● 실전 팁
- do 블록을 작성했다면, 반드시 블록 {} 종료 후에 while(조건);을 붙여야 합니다.
- while 뒤에는 조건식과 세미콜론(;)이 필수입니다.
- 문법 오류를 방지하려면 항상 do { ... } while (조건); 패턴을 기억하세요.
do-while 문은 블록 실행 이후 조건 판단이 이루어지는 구조입니다.
따라서 while이 누락되면 C 문법에 맞지 않게 되어 컴파일 오류가 발생합니다.
반복문을 작성할 때 올바른 구문 구조를 습관적으로 지키는 것이 중요합니다.