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);
}
生徒
配列の中身を出力するということですね?
なるほど。
教授
君も頭の中のモヤモヤを出力してみてはどうですか?
生徒
いやいや、それこそ無限ループですよ?