13.
繰り返し(while)
while文
while文の構造
while文は条件式がtrueの間、ずっと繰り返します。条件式は処理をする前に判定するので前判定といいます。
while (条件式) {
処理;
}
0から10の間繰り返し
i が0から10の間、ずっと繰り返します。
int i = 0;
while (i <= 10) {
i++;
}
System.out.println(i);
結果
最終結果は11になります。
11
無限ループ
while文の繰り返しは処理を間違えると、半永久的に処理がされる無限ループになります。
無限ループの場合処理を止める
while文の中で何も処理しなかいと、ずっとループしてしまいます。
while (i <= 10) {
System.out.println(i);
}
break でループを抜ける
whileで条件分岐してbreakでループ処理を終了することができます。
while (条件1) {
if (条件2) {
break;
}
}
breakの例
1から1000までの整数で、7の倍数を5つ表示(小さい順)してみましょう。
int currentNumber = 1;
int maxNumber = 1000;
int div = 7;
int index = 0;
int limit = 5;
while (currentNumber < maxNumber) {
if (currentNumber % div == 0) {
System.out.println(currentNumber);
limit++;
}
if (index == limit) {
break;
}
currentNumber++;
}
結果
7の倍数が5つ表示されました。index = 5 で whileループがbreakするので、35より大きい数字は処理されていません。
7
14
21
28
35
do while文
do while文はwhile文と基本的に同じですが、処理をした後に条件を判定します。これを後判定といいます。
0 から 10 以下の間繰り返し
0 から 1 ずつ増えて 10以下の間繰り返す処理です。
i = 0;
do {
i++;
} while (i <= 10);
System.out.println("whileの結果:" + i);
結果
whileの結果:11
演習
問題1
1 から 1000までの整数で、17の倍数はいくつありますか?
1)58
2)59
3)60
4)61
問題2
100万円を1年複利1%で貯金すると、200万円になるには何年かかるでしょう?
1)68年後
2)69年後
3)70年後
4)71年後