復習のために、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++; } |
ループの外に初期化を書くのと、ループの最後の実行として再初期化を機械的に 書くだけで良い。