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年後