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문을 사용하는 것이 더 적절합니다.
'프로그래밍 언어 > C' 카테고리의 다른 글
(C언어) 16 - 조건문(2) - 조건 연산자(삼항 연산자) (0) | 2020.05.14 |
---|---|
(C언어) 15 - 조건문(1) - if (0) | 2020.05.14 |
(C언어) 13 - 반복문(2) - for (0) | 2020.05.14 |
(C언어) 12 - 반복문(1) - while (0) | 2020.05.14 |
(C언어) 11 - scanf 함수 (0) | 2020.05.14 |