next up previous contents
Next: 2. 判断 Up: 14. 制御構造 II Previous: 14. 制御構造 II

1. 繰り返し

復習のために、for 文の書式を書くと、


        for ( 初期化 ; 継続判断 ; 再初期化){
            実行文
            ...
        }

である。しかし、この構文はあまりにも一般的で、面倒であることが多い。 実際、初期化や、再初期化を行わない繰り返しも、これまで色々プログラムして来た。 そこで、この初期化と再初期化がない構文があると便利であろう。 このための新しい構文として while 文が用意されている。

while 文の書式は以下の通りである。


        while ( 継続条件 ){
            実行文
        }

while 文では、継続条件が真である間、中括弧内の実行文を繰り返し実行 する。従って、以下の while 文は、


        while ( i<10 ){
            sum = sum + i++;
        }

次の for 文とまったく同じである。


        for (; i<10 ;){
            sum = sum + i++;
        }

まさに、for 文から初期化と増分処理を取り除いたものになっている。

逆に、for 文を while 文に書き直す 際には注意を要する。何故ならば、while 文には初期化や再初期化が 存在しないからである。では、どうやって書き直すかは、初期化や再初期化の 原理を思い出すと良い。初期化はループに入る前に一度だけ実行され、再初期化 はループの終りに毎回実行されるのであるから、例えば次の for 文は、


        for(i=0; i<10; i++){
            sum += i;
        }

次のように書き換えられる。


        i=0;
        while( i<10 ){
            sum += i;
            i++;
        }

ループの外に初期化を書くのと、ループの最後の実行として再初期化を機械的に 書くだけで良い。



Noriyo Kanayama