[5.3b]. do-while문 - 반복변수의 감소
◎ 문법; do 실행문 while (반복조건);
◎ 의미; 실행문을 먼저 실행하고 반복조건을 검사한다.
반복 조건을 만족하는 동안 실행문을 반복한다.
반복조건을 만족하지 못하면 while문장 밖으로 나가게 된다.
반복 실행이 되면서 반복변수의 값이 감소한다.
예; 5에서 1까지 1씩 감소하면서 덧셈 (5+4+3+2+1)
j = 5;
sum = 0;
do {
sum += j;
j--;
} while (j>=1);
설명; 반복변수는 j이다.
반복변수 j의 시작값은 5이다; (j=5)
반복의 조건은 j가 1보다 크거나 같다; (j>=1) (크거나 같다에 주의한다)
반복변수는 1씩 감소한다; (j--)
j=5일 때; sum = 5
j=4일 때; sum = 5+4 = 9
j=3일 때; sum = 9+3 = 12
j=2일 때; sum = 12+2 = 14
j=1일 때; sum = 14+1 = 15
j=0일 때; 반복의 조건을 만족하지 못하므로 while문에서 벗어난다.
◎ 실행문이 둘 이상이면 '{ }'안에 넣는다.
◎ 반복 변수의 감소를 반복 조건 안에 포함할 수 있다. (예; while (--j>=1))
위의 반복문을 아래와 같이 간단히 표현할 수 있다;
j = 5;
sum = 0;
do {
sum += j;
} while (--j>=1);
예문 (
05-do-while-03e.cpp); 반복변수가 2씩 감소
#include <stdio.h>
#include <conio.h> // getch()
main() {
int j, sum;
printf("\n do-while문; 10부터 1까지의 짝수의 합 >> "); getch();
j = 10;
sum = 0;
do {
sum += j;
j -= 2;
} while (j>=1);
printf("\n 합계=%d",sum);
printf("\n 프로그램 끝"); getch();
}
출력; 30
설명; 10+8+6+4+2=30
◎ while반복문과 do-while반복문의 비교;
(1) while문은 반복조건을 앞에서 검사하고,
do-while문은 반복조건을 끝에서 검사한다.
(2) while문은 반복조건에 맞지 않으면 한번도 실행 되지 않을 수 있다.
do-while문은 적어도 한 번은 반드시 실행된다.
[예제] 20부터 0까지 5씩 감소하는 수의 합 (
05-do-while-02c.cpp);
[답]
sum = 0; j = 20;
[ do {
sum += j;
j -= 5;
} while ( j>=0 ); ]
printf("\n 합계=%d",sum);
출력; 50
설명; 20+15+10+5+0=50
[연습문제] 아래 코드의 출력은 무엇인가?
k = 20;
sum = 0;
do {
if (k%2==0) sum += k;
k--;
} while ( j>=10 );
printf(" sum= %d",sum);
//