while が繰り返すかどうか判断するのは繰り返し部分を実行する前です。これを一度実行したあとに条件判定をしたい場合が出てきます。
do { /* 繰り返しの処理の内容 */ }while( 終了判定条件 );
do ではどんな場合でも、繰り返しの処理の内容を1度は実行します。
次の例は1をどんどん2倍して表示し、1000より大きくなったらやめるプログラムです。
/** whileの使い方 */
public class Kurikaeshid {
public static void main( String[] args ) {
double x = 1;
do {
System.out.println( x );
x = x * 2;
} while( x < 1000 );
}
}
結果は以下の通り。前のページのものと同一です。
1.0 2.0 4.0 8.0 16.0 32.0 64.0 128.0 256.0 512.0
do while の振る舞いも単純です。
while を書かなければ、無限に繰り返すプログラムになります。
for や while に比べて異なる形をしています。while では、
while ( 判定条件 ) { 繰り返しの処理の内容 }
do では、
do { 繰り返しの処理の内容 } while ( 判定条件 );
while を使って次のように書くと do と同等のことをするプログラムになります。
繰り返しの処理の内容 while ( 判定条件 ) { 繰り返しの処理の内容 }
do while と while はほとんど同様に使用できるので、多くは while 一つで済ましてしまいますが、ある状況では do while が便利です。しかし、今まで勉強した範囲でそのような状況の例を思いつけないので、ここの課題はなしとします。