無限ループ
繰り返し処理のことを「ループ処理」とも呼びます。そして不具合などでループ処理が一生終わらないことを「永久ループ」、「無限ループ」などと言います。この恐怖の「無限ループ」を意図的に行うことがあるのです。プロジェクトjava01のパッケージstep06にクラス「Loop3」を作成し、次のプログラムを入力してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package step06; public class Loop3 { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ int i = 0; for(;;){ i = i + 1; if( i > 10){ break; } System.out.println("i="+i); } System.out.println("終了しました。"); } } |
プログラムを実行してください。
無限ループのはずですが終了しました。プログラムをみていきましょう。
for(;;){
9行目の「for(;;){」が無限ループさせる命令です。前回、「for」命令のかっこ()に条件等を記述しましたが今回はありません。つまりループを終了する条件が無いのです。これで終了することなくループが一生続きます。
9 |
for(;;){ |
break
意図的に無限ループさせるからといって、プログラムが終わらないのは困りものです。そのためループ処理を抜ける命令があります。それが12行目の「break」です。
11 12 13 |
if( i > 10){ break; } |
11行目の条件により「break」命令が実行されループを抜けることができます。
わざわざ無限ループさせて、break命令で終了するなんて無駄だと感じるかもしれません。しかしfor命令で記述する条件より自由で複雑な終了条件を書くことができます。必要に応じて無限ループさせbreak命令で終了するテクニックを使ってください。
繰り返し命令をマスターしました。これでさらにコンピュータならではのプログラムを記述することができます。思いついた繰り返し処理をどんどん書いてみてください。また、次の「チャレンジ」に挑戦してみてください。