29.1 do while 반복문 사용하기
먼저 do while을 사용하여 "Hello, world!"를 100번 출력해보겠습니다.
do_while_0_to_99.c
#include <stdio.h> int main() { int i = 0; do // 처음 한 번은 아래 코드가 실행됨 { printf("Hello, world! %d\n", i); // Hello, world!와 i의 값을 함께 출력 i++; // i를 1씩 증가시킴 } while (i < 100); // i가 100보다 작을 때 반복. 0부터 99까지 증가하면서 100번 반복 return 0; }
실행 결과
Hello, world! 0 Hello, world! 1 ... (생략) Hello, world! 97 Hello, world! 98 Hello, world! 99
먼저 반복문에 사용할 변수를 선언한 뒤 0으로 초기화합니다. 그리고 do 아래에 중괄호를 열고 반복할 코드와 변화식을 넣습니다. 마지막으로 중괄호를 닫은 뒤 while에 조건식을 지정하고 세미콜론을 붙여주면 됩니다.
do 다음에 오는 코드는 조건식과 상관없이 무조건 한 번은 실행됩니다. 따라서 printf가 한 번 실행되고, i++도 실행되어 i가 1 증가합니다. 이 상태로 조건식에서 i가 100보다 작은지 검사하게 됩니다. 아직은 i가 100보다 작으므로 계속 반복하다가 i가 100이 되면 i < 100은 거짓이 되므로 반복을 끝냅니다.
do while 반복문도 반드시 { } (중괄호) 안에 변화식을 지정해야 합니다. 만약 조건식만 지정하고 중괄호 안에서 변화식을 생략하면 반복이 끝나지 않고 계속 실행(무한 루프)되므로 주의해야 합니다.
do while을 while로만 표현하면 다음과 같습니다.
while.c
#include <stdio.h> int main() { int i = 0; // do에 해당하는 부분 printf("Hello, world! %d\n", i); // 처음 한 번은 실행 i++; // 처음 한 번은 실행 while (i < 100) // i가 100보다 작을 때 반복. 0부터 99까지 증가하면서 100번 반복 { printf("Hello, world! %d\n", i); // Hello, world!와 i의 값을 함께 출력 i++; // i를 1씩 증가시킴 } return 0; }
실행 결과
Hello, world! 0 Hello, world! 1 ... (생략) Hello, world! 97 Hello, world! 98 Hello, world! 99
while 반복문을 실행하기 전에 printf로 문자열을 출력하고 i++로 i를 1 증가시켰습니다. 이 부분은 do while에서 처음 한 번은 조건문과 상관없이 실행되는 점과 같습니다. 이처럼 do while은 처음 한 번은 실행해야 하며 그 이후에는 조건에 따라 반복해야 하는 코드를 간단하게 표현할 수 있습니다.