28.7 while 반복문으로 무한 루프 만들기

이번에는 무한 루프를 만들어보겠습니다.

while_infinite_loop.c

#include <stdio.h>

int main()
{
    while (1)    // while에 1을 지정하면 무한 루프
    {
        printf("Hello, world!\n");
    }

    return 0;
}

실행 결과

... (생략)
Hello, world!
Hello, world!
Hello, world!
Hello, world!
... (계속 반복)

while에서 조건식 대신 1을 지정하면 무한히 반복하는 무한 루프가 만들어집니다. 따라서 조건식 자체가 없으므로 변화식도 필요 없습니다. 이 프로그램을 실행한 상태로 두면 Hello, world!는 끝나지 않고 계속 출력됩니다. 따라서 콘솔(터미널, 명령 프롬프트)에서 Ctrl+C를 입력하여 무한 루프를 끝냅니다.

무한 루프를 만들 때 다음과 같이 1대신 불값인 true를 넣기도 합니다.

while_infinite_loop_true.c

#include <stdio.h>
#include <stdbool.h>    // bool, true, false가 정의된 헤더 파일

int main()
{
    while (true)    // while에 true를 지정하면 무한 루프
    {
        printf("Hello, world!\n");
    }

    return 0;
}

여기서는 stdbool.h 헤더 파일을 사용하여 whiletrue를 지정하였습니다. 1대신 true를 사용해도 동작은 달라지지 않지만 코드의 의도를 좀 더 명확하게 표현할 수 있어서 자주 사용되는 방식입니다.

참고 | TRUE

stdbool.h 헤더 파일이 없던 시절에 작성된 코드의 경우 true대신 매크로로 정의한 TRUE를 사용하기도 합니다. TRUE, FALSE에 대한 자세한 내용은 '부록 12. 불 자료형'을 참조하세요.

while (TRUE)