do-whileループ
while文とよく似た繰り返し処理の文として、do-while文があります。while文は条件式を評価してからブロック内の文を実行するかどうか決めるものでしたが、do-while文は逆にブロック内の文を実行してから条件式を評価し、もう一度繰り返します。
do {
文1;
文2;
} while (条件式);
そのため基本的な使い方はwhile文と同じですが、違うところが一つだけあります。while文は条件式が最初から偽のままだとループないの文は一度も実行されませんが、do-while文は条件式がずっと偽でも1回だけは文が実行されます。
#include <stdio.h>
int main(void){
int a,sum=0,i=0;
do {
puts("正の整数を入力してください。");
scanf("%d",&a);
} while (a<=0);
do {
i++;
sum+=i;
} while (i<a);
printf("1から%dまでの和は%dです\n",a,sum);
return 0;
}
実行結果
正の整数を入力してください。
-9
正の整数を入力してください。
5
1から5までの和は15です。
負の数を入力した時は、1番目のdo-whileループによって再度入力を促します。2番目のループでは1から入力した数までの総和を計算します。
また、do-while文でもwhile文と同様にbreak文でループから脱出することができます。
まとめ
do-while文は条件式が真の間ループできる。
while文との違いは、do-while文は条件式が偽であっても少なくとも一回は処理が行われることである。
コメント