while문과 for문은 조건을 만족하지 않으면 반복문 내의 코드가 한 번도 실행되지 않습니다. 최소 한 번은 반복문을 실행하고 그 이후에 조건에 따라 실행 여부를 결정하고 싶을 때 사용하는 것이 do while 반복문입니다.


do
{
    . . .
}while(조건문);

do- while 반복문이 실행되면 처음으로 do 블럭을 한 번 실행합니다. 그 이후 (. . .)의 조건식을 판단합니다. 이 조건식이 맞다면 다시 한 번 {. . .}를 실행하고 다시 (. . .)의 조건식을 판단합니다. while문과의 차이점은 최초 실행 여부입니다.

사실 do-while문은 while문에 비해서 활용빈도가 그리 높지 않습니다. 그리고 do-while문으로 구현가능한 코드는 while문이 100% 대체 가능할 수 있기도 합니다. 그럼에도 불구하고 do-while문이 while문보다 더 적절한 경우도 있습니다. 다음의 예시 코드를 봅시다.

우리는 사용자에게 1개 이상의 정수를 입력받아 그 수들의 합을 계산해주고 0을 입력받으면 종료되는 프로그램을 만들려고 합니다.

#include <stdio.h>

int main(void)
{
    int num;
    int sum = 0;

    do
    {
        printf("Type a number(type 0 to quit) : ");
        scanf("%d", &num);
        sum+=num; //sum = sum + num;
    }while(num!=0);

    printf("The sum is %d\n", sum);

    return 0;
}

실행결과

Type a number(type 0 to quit) : 231

Type a number(type 0 to quit) : -19

Type a number(type 0 to quit) : 84

Type a number(type 0 to quit) : 194

Type a number(type 0 to quit) : -230

Type a number(type 0 to quit) : 0

The sum is 260

계속하려면 아무 키나 누르십시오 . . .

위와같은 경우에는 최소 한 번은 입력을 받아야 하기 때문에 do-while문을 사용하는 것이 더 적절합니다.

+ Recent posts