28.4 while 반복문과 세미콜론

for와 마찬가지로 while도 끝에 ; (세미콜론)을 붙이면 안 됩니다.

while_semicolon.c

#include <stdio.h>

int main()
{
    int i = 0;
    while (i < 100);    // while 루프 선언문 끝에 세미콜론을 붙이면 안됨
    {
        printf("Hello, world!\n");
        i++;
    }

    return 0;
}

이 코드를 컴파일하여 실행해보면 아무것도 출력되지 않을 것입니다. 왜냐하면 세미콜론을 붙여서 while과 반복할 코드는 관계가 없이 떨어진 상태가 되고, 중괄호 안에 있는 변화식은 전혀 실행되지 않기 때문입니다. 따라서 while은 끝나지 않는 무한 루프 상태가 됩니다(무한 루프는 Ctrl+C를 입력하여 끝냅니다). 이렇게 되면 뒤에 오는 printf는 절대 실행되지 않습니다.

즉, while 반복문 끝에 세미콜론을 붙이게 되면 실제로는 다음과 같은 코드가 됩니다.

while (i < 100);

{
    printf("Hello, world!\n");
    i++;
}