繰り返し(do while文)
「
繰り返し」は
do while文という制御構文を使うことでも実現できます。
do{
実行する内容
}while(条件式)
do while文の条件式判定が偽であっても、最低 1回は処理を実行するという点が特徴です。
do while文のサンプルコードを下記します。
int cnt = 0;
do {
System.out.println(cnt);
cnt++;
}while (cnt < 10);
実行結果
0
1
2
3
4
5
6
7
8
9
また、上記したとおり、do while文はループに入るとき条件式の判定が偽であっても最低1回はブロック内の処理を実行します。
例えば、上記サンプルコードを下記のように変更した場合、
int cnt = 10;
do {
System.out.println(cnt);
cnt++;
}while (cnt < 10);
実行結果
10
do whileブロックに入った時点で、変数cntの値は10となっており、条件式の判定は偽となりますが、「System.out.println(cnt);」ステートメントが実行されていることがわかります。
このような、ループ内の処理を行ってから条件式を判定する方式を
後判定ループと言います。
それに対し、while文やfor文のようにループ内の処理を行う前に条件式を判定する方式を
前判定ループと言います。
do while文もwhile文同様、doブロック内でループ変数をインクリメントさせてやらなければなりません。
この処理を忘れると、条件式が永遠に真のままとなり、ループを抜けることができなくなります。
そのような状態のことを
無限ループと言います。
無限ループはソフトウェア開発において、代表的な不具合の一つとなっており、十分に注意が必要です。