26.1.3.1 繰返しの威力

プログラムの中で反復指定は一種特異な役割をもっています.何しろ,ほんの数行書くだけで,何千回,何百万回といった反復実行ができてしまうのですから.反復実行は,コンピュータの高速性を有効に活用するためには必須の機能なのです.

forを使った繰返し(反復)実行は,「定数回反復」です.この繰返し方法では,繰返しが始まる時点で,繰り返す回数が決まっています.十回であろうが一万回であろうが同じです.このためforの反復は,「比較的安心して使える」という特長があるのです.もっとも,条件判定部や値の変更部で変な書き方をすればこの限りではありません.ですのでfor形式では,定数回反復を素直に見せるのが作法です.

ところが問題によっては,繰返し回数が前もってはわからずに,状況に応じて必要なだけ反復することが必要である場合もあります.例として,「倍々ゲームの結果を表にする」をやってみます.

class Doubling {
    public static void main(String argv[ ]) {
	int x=1, p;
	for(p=0; p<=20; p=p+1) {
	    System.out.println(p + " : " + x);
	    x=x*2;
	}
    }
}

fileDoubling.java

結果は自明ですね.大まかには

0:1 1:2 2:4 3:8 4:16 … … 19:524288 20:1048576

となります. この場合には,繰り返し回数が前もって分かっていますからforを使うことがきます.