Java入門の第9回です。前回からの続きですが、今回だけでも分かる内容になっています。
今回は、do ~ while文による繰り返し処理について解説します。
繰り返し処理で使用される構文
繰り返し処理(ループ処理)とは、何らかの処理を繰り返し行うことです。Java言語で繰り返し処理を行うには、以下の構文などを使用します。
- for文
- while文
- do ~ while文
今回は、このうちのdo ~ while文について解説します。
do ~ while文で繰り返し処理
do ~ while文は、繰り返し処理を行う際に使用します。do ~ while文の構文は、以下の通りです。
do { 繰り返し処理の内容; } while(条件);
do ~ while文は、先にdoがあって後にwhileがあります。つまり、先に処理を実行して後から条件評価をするのが do ~ while文の特徴です。後から行われる条件評価がtrueなら再び先頭へと戻ります。
条件とは、繰り返し処理を継続する条件です。例えば、iが10になるまでループを継続する場合、条件に i<=10 と指定するとiが10以下ならループを継続するように指定したことになります。
サンプルコードで動作確認
do ~ while文を使ったサンプルコードを作成して、実際に動作確認してみましょう。
int i=1; do { System.out.println(i + "回目の処理です"); i++; } while(i<=10);
以下は「Test9」という名前のクラスを作って、そのなかにdo ~ while文の実例を記述したものです。
public class Test9 { public static void main(String[] args) { int i=1; do { System.out.println(i + "回目の処理です"); i++; } while(i<=10); } }
コードが入力できたら、Eclipseメニューの実行ボタンから[実行] → [Javaアプリケーション]を選択します。以下は、Eclipseの実行結果画面です。
do ~ whileループに入る前にint i=1と初期化しています。ループ1回目には 条件評価に関係なく System.out.println(i + “回目の処理です”); が実行されて「1回目の処理です」と表示されます。次に i++ が実行されて変数iの値は2となります。
1回目の処理の実行が終わった時点で、初めての条件評価が行われます。この時点では変数iの値は2なので i<=10の条件評価はtrueとなり、do ~ whileループの先頭に戻ります。2回目も先に処理を実行して、後から条件を評価が行われます。 3回目以降のループも同様に繰り返します。
10回目のループ処理が実行されると変数iは11となり、その後に条件評価が行われます。この時点で変数iの値は11なので i<=10の条件評価はfalseとなり、whileループから抜けることになります。つまり、10回目の条件評価でfalseとなるため、11回目の条件評価は行われることなくループを抜けます。
do~while文による繰り返し処理の特徴
冒頭で、Java言語の繰り返し処理には、以下の構文などがあることを紹介しました。
- for文
- while文
- do ~ while文
上記の構文のうち、do ~ while文は先に処理を実行して後から条件評価をするのが特徴です。
do { 繰り返し処理の内容; } while(条件);
前回登場したwhile文の構文と比較してみましょう。
while(条件) { 繰り返し処理の内容; }
while文も do ~ while文も繰り返し処理を指定するのは同じですが、while文が先に条件を評価して後から処理を実行するのに対して、 do ~ while文は先に処理を実行して後から条件を評価する点が異なります。
- while文 … 先に条件を評価して → (trueなら)処理を実行する → 先頭へ戻る
- do ~ while文 … 先に処理を実行して → 条件を評価する → (trueなら)先頭へ戻る
つまり、while文ではループ1回目の条件評価がfalseなら1回も処理が実行されない可能性があるのに対して、do ~ while文では条件評価のtrue/falseに関わらず最低1回は処理が実行されることになります。
まとめ
Java言語で繰り返し処理を行う際に利用できる、以下の3つの構文について紹介しました。
- for文 … ループの条件を一か所でまとめて記述する
- while文 … 先に評価して、後で実行する
- do ~ while文 … 先に実行して、後で評価する
それぞれに特徴があるので、状況や好みに応じて使い分けてください。
次回へ続きます。