실행해 보면 기존과 같은 결과가 나오는 것을 볼 수 있습니다.
그림 3-5 do-while 문의 작동 순서
while 문은 조건을 먼저 확인하고 나서 참이면 문장을 수행하지만, do-while 문은 일단 무조건 한 번은 실행하고 난 뒤에 조건을 확인한다는 점이 다릅니다. while 문은 조건에 따라 문장을 아예 실행하지 않을 수도 있습니다.
Note while (1)
프로그래밍을 하다 보면 ‘무한 반복(infinite loop)에 빠졌다’는 표현을 많이 듣습니다. 이는 반복문을 탈출하지 못하고 문장이 끝없이 반복 수행하는 것을 의미합니다. C 언어에서는 1을 참, 0을 거짓으로 인식합니다. 그래서 앞 예제에서 while (i <= 10) 부분을 while ()로 바꾸면 조건이 항상 참이 되어 무한 반복에 빠지게 됩니다. 또는, 실수로 printf() 문의 i++를 i로 잘못 적어도 i <= 10는 조건이 항상 성립하므로 무한 반복에 빠지게 되지요. 의도적으로 무한 반복을 생성하는 경우도 있지만, 탈출 조건을 제대로 설정하지 않아서 무한 반복에 빠지는 경우가 많습니다. 프로그램을 실행했을 때 기대했던 것과 다르게 계속해서 값이 출력되거나 아무런 반응 없이 커서만 깜빡인다면 무한 반복에 빠졌을 가능성이 큽니다. 이때 Ctrl + C를 누르면 실행을 강제로 종료할 수 있습니다.