ある条件式が満たされている間、処理を繰り返し行いたい!
Java のループステートメントのひとつで、while ループと同じように、指定された条件式が真の間は繰り返し対象のコードブロックを繰り返し実行します。
条件式は真または偽を返す式であれば、どんな式でも構いません。
while ループと異なる点は、条件式の判定が処理の後に行われることです。
これを「後判定」といいます。そのため、最初から条件式が偽の場合でも、繰り返し対象のコードブロックは一回は必ず実行されます。
do { コードブロック; } while ( 条件式 );
1 〜 10 の数字を足す処理を考えてみましょう。
int i = 1;
int total = 0;
System.out.println("start");
do {
total = total + i;
System.out.println("i = " + i + " , total = " + total);
i = i + 1;
} while ( i <= 10) ;
System.out.println("end");
上記の処理結果は以下のようになります。
start
i = 1 , total = 1
i = 2 , total = 3
i = 3 , total = 6
i = 4 , total = 10
i = 5 , total = 15
i = 6 , total = 21
i = 7 , total = 28
i = 8 , total = 36
i = 9 , total = 45
i = 10 , total = 55
end
条件式が最初から偽の場合
int i = 0;
int count = 0;
System.out.println("start");
do {
count += i;
System.out.println("i = " + i + " , count = " + count);
i--;
} while ( i >= 1) ;
System.out.println("end");
上記の処理結果は以下のようになります。
start
i = 0 , count = 0
end
メソッドを条件式とすることで、複雑な判定を行なうことも出来ます。
public void test() { do { 繰り返し処理 } while (this.judge()) ; } public boolean judge(){ // 様々な処理 if (判定式){ return true; }else{ return false; } }