Java入門9 do~while文による繰り返し処理

Java入門の第9回です。前回からの続きですが、今回だけでも分かる内容になっています。

今回は、do ~ while文による繰り返し処理について解説します。

繰り返し処理で使用される構文

繰り返し処理(ループ処理)とは、何らかの処理を繰り返し行うことです。Java言語で繰り返し処理を行うには、以下の構文などを使用します。

  1. for文
  2. while文
  3. 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言語の繰り返し処理には、以下の構文などがあることを紹介しました。

  1. for文
  2. while文
  3. 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つの構文について紹介しました。

  1. for文 … ループの条件を一か所でまとめて記述する
  2. while文 … 先に評価して、後で実行する
  3. do ~ while文 … 先に実行して、後で評価する

それぞれに特徴があるので、状況や好みに応じて使い分けてください。

次回へ続きます。