3.5 do文
3.5.1 遅延評価型の繰り返し制御
繰り返し文において条件の評価を先送りすることによって、アルゴリズムを簡素化することができるということがあるかもしれません。while 文の場合は繰り返し処理を開始する前に条件を評価するため、最初から条件が false を返した場合は繰り返し処理が一度も実行されません。しかし、条件がどのような結果であれ、最低でも一回は実行してほしいという場合、処理が面倒になってしまいます。
繰り返すべき文を最初に実行し、その後に条件を評価するには do 文を使います。do 文の動作は基本的に while 文と同じですが、条件の評価を繰り返し処理の後に行うという点で異なります。
do 文 while (条件式) ;
やはり、条件式は boolean 型でなければなりません。while 文同様に、条件式が true であれば制御が do 文の先頭まで戻り、文が再度実行され、false であれば繰り返し処理から抜け出します。条件は文を実行した後に評価されるため、確実に一回以上は実行されるのです。
class Test { public static void main(String args[]) { int i = 0; do System.out.println(i); while(++i < 10); } }
>java Test 0 1 2 3 4 5 6 7 8 9
コード1では、繰り返し文を使って変数 i が 10 以下の間は繰り返すようにプログラムされています。3.4 while文 コード1と結果を比較すれば、while 文と do 文の違いがわかるでしょう。while 文は条件を最初に評価するため i++ が実行された後に i の値が表示されました。そのため、1 ~ 9 までが表示されましたが、do 文の場合は最後に条件が評価されるため 0 ~ 9 までの値が表示されています。
しかし、経験から語るのであれば do 文を使う必要に迫られることはほとんどないでしょう。意識して積極的に使おうとしない限り while 文で十分です。