導入
回数が決まっていないくり返しには while を使います。「最低1回は実行してから条件を見る」do-while もあります。
説明
while (条件) { ... } は、条件が真のあいだくり返します。条件を先に判定してから本体を実行するので、最初から条件が偽なら1回も実行されません。中で条件を変えないと無限ループになるので注意します。
#include <stdio.h>
int main() {
int count = 1;
while (count <= 5) {
printf("%d ", count);
count++; // これを忘れると無限ループ
}
printf("\n");
return 0;
}
do { ... } while (条件); は、while と順番が逆で、先に中身を1回実行してから条件を判定します。条件が最初から偽でも、必ず1回は実行されるのが while との違いです。
#include <stdio.h>
int main() {
int n = 10;
do {
printf("%d ", n);
n--;
} while (n >= 8); // 10 9 8
printf("\n");
return 0;
}
次のように条件が最初から偽の場合を比べると、違いがはっきりします。while は0回、do-while は1回だけ実行されます。
#include <stdio.h>
int main() {
int x = 100;
while (x < 10) {
printf("whileの中\n"); // 1度も表示されない
}
do {
printf("do-whileの中\n"); // 条件が偽でも1回は表示される
} while (x < 10);
return 0;
}
この実行環境には安全のため時間制限があり、無限ループになっても自動で止まります。
やってみよう
while の条件や do-while の範囲を変えて、くり返し回数が変わることを確かめましょう。上の「条件が最初から偽」の例も実行して、while と do-while の違いを目で確認してください。
演習
while を使って、1 から 5 までの数を横に並べて表示してください(1 2 3 4 5)。
ヒント1を見る
int i = 1; から始め、while (i <= 5) { printf("%d ", i); i++; }。