Javaのループ構文

Whileを使ったループ

生徒
生徒

教授?
なんか、最近日常がループしているように思うのですが。

教授
教授

君のデジャヴはともかくとして。
Javaでもループが使えますよ?

int i = 0;
while (i < 5) {
  System.out.println(i);
  i++;
}
生徒
生徒

これは、1ずつ数を増やしながら、数字を出力していくのですね?

教授
教授

条件式は、i < 5のところです。
変数「i」が5よりも小さい間は、数字を出力し続けるのです。
そして、今の君はきっと次のような日常なのです。

int i = 0;
while (i < 5) {
  System.out.println(i);
  
}
生徒
生徒

どうなるのですか?

教授
教授

これは、無限ループです。
i++を書き忘れていますので、いつまでたっても条件式を満たすことはありません。
++のところを「インクリメント」と言って、値を1増やすという意味です。
このコードは、まるで今の君のようでしょう?

生徒
生徒

毎日のインクリメント(++)が大切ということですか?

教授
教授

一つずつでも積み重ねていくことが大切なのです。

Forを使ったループ

生徒
生徒

さっきのように条件式を満たさないと無限ループというのはある意味怖いですね。

教授
教授

最初から始まりと終わりが決まっているループもありますよ?

for (int i = 0; i < 5; i++) {
  System.out.println(i);
}
生徒
生徒

これは、whileを使った時と、同じ結果なのですか?

教授
教授

そうです。
int i = 0; ⇒変数の宣言と初期化

i < 5;  ⇒条件式

i++ ⇒値の増分
となります。

生徒
生徒

なるほど、そうなんですね。

For-Eachループ

教授
教授

ちなみに、配列の要素をループするFor-Eachループもありますよ?

String[] chars = {"教授", "生徒", "もけもけ"};
for (String i : chars) {
  System.out.println(i);
}
生徒
生徒

配列の中身を出力するということですね?
なるほど。

教授
教授

君も頭の中のモヤモヤを出力してみてはどうですか?

生徒
生徒

いやいや、それこそ無限ループですよ?

タイトルとURLをコピーしました