1-4-2:do-while と breakの役割


・ ループの条件判定は、処理を実行してみて始めてわかる場合も多いでしょう。 たとえば、データの生成や読み込みがうまくいったことを確認してから 繰り返しを行うような場合には、条件判定の前にデータの準備の処理を 実行しなくてはいけません。
そのような場合に、do - whileのパターンを利用すると、 記述が簡潔にできる場合があります。 do は繰り返しのブロックを開始します。この時点では条件判定はまだ行われ ません。 最初の繰り返しの処理が終了した時点で、始めて条件判定を行います。 その条件式は、繰り返しの直後に置かれたwhile文の( )の中に書きます (その後に ; が必要なことに注意)。


do {
    繰り返し処理の内容

}
while( 条件判定 );

要するに、条件判定が繰り返しの後で行われると考えればいいわけです。 なお、このため、do-whileのブロックの処理は、最低1回は必ず呼び出される ことになります。

・ ループの条件式の部分を敢えて trueの値に指定することもできます。 このままではループは永久に繰り返される「無限ループ」となります。 whileの条件式の場合は省略できませんが、 forの条件式の部分は記述を省略すると、条件が常に trueとみなされます。
通常は処理が終了しないと困るので、ループから脱出するための手段も 用意されています。ループのブロックから強制的に抜ける場合にも、 break文が用いられます。
break は switch - case の条件分岐のブロックを抜けるのにも利用されましたね。 「ブロックの処理を中断して抜け出す」という意味では目的は同じです。 ただし、if が作り出すブロックは break の対象とはならない点に注意してください。 実際、ループからの脱出の break は、ifと組み合わせて用いる場合がほとんどです。


while( true ) {

   if( x < 0 )
       break;
}

for( ; ; ) {

   if( x < 0 )
       break;
}