Java入門7 for文による繰り返し処理

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

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

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

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

  1. for文
  2. while文
  3. do ~ while文

今回は、このうちのfor文について解説します。

for文で繰り返し処理

for文は、繰り返し処理を行う際に使用します。 for文の構文は、以下の通りです。

for (初期化; 条件; 後処理) {
    繰り返し処理の内容;
}

初期化とは、繰り返し処理を始める直前に行う前処理です。例えば、ループ内で変数iをカウンタアップしていく場合、初期化の部分に int i=1 と指定すると変数iに初期値1を代入します。

条件とは、繰り返し処理を継続する条件です。例えば、iが10になるまでループを継続する場合、条件に i<=10 と指定するとiが10以下ならループを継続するように指定したことになります。

後処理とは、1回ループがまわって処理が終わるごとに実行される処理です。例えば、後処理に i++ と指定すると、繰り返し処理が1回実行されるごとに変数iが1ずつ増えます。

サンプルコードで動作確認

for文を使ったサンプルコードを作成して、実際に動作確認してみましょう。

for (int i=1; i<=10; i++) {
    System.out.println(i + "回目の処理です");
}

以下は「Test7」という名前のクラスを作って、そのなかにfor文の実例を記述したものです。

public class Test7 {

	public static void main(String[] args) {
		for (int i=1; i<=10; i++) {
		    System.out.println(i + "回目の処理です");
		}
	}

}

コードが入力できたら、Eclipseメニューの実行ボタンから[実行] → [Javaアプリケーション]を選択します。以下は、Eclipseの実行結果画面です。

ループ開始の直前にint i=1として初期化しているので、ループ1回目には 「1回目の処理です」と表示されます。そして、ループ1回目のSystem.out.println(i + “回目の処理です”);の部分が実行された後に i++ が実行されます。

このi++が 前処理ではなく後処理である点に注意してください。 i++ が実行されてからSystem.out.println()が実行されるのではなく、System.out.println()が実行されてから i++ が実行されています。

1回目のループ処理の実行が終わった時点では i<=10 の条件は true のままなので、2回目のループ処理が実行されます。そして10回目のループ処理が実行された後にi++が実行されるとiは11となるため、ループから抜けることになります。

for文による繰り返し処理の特徴

冒頭で、Java言語の繰り返し処理には、以下の構文などがあることを紹介しました。

  1. for文
  2. while文
  3. do ~ while文

上記の構文のうち、for文は初期化; 条件; 後処理を先頭行にまとめて記述するので、ループの条件を一か所でまとめて確認できます。

for (初期化; 条件; 後処理) {
    繰り返し処理の内容;
}

今後、ループを作成する際にどのループ構文を使うべきか迷うことがあるかもしれません。「カウンタが必要な処理なら一般的にはfor文を使う」と覚えておくと良いでしょう。

例えば、for文でもwhile文でも作成できる繰り返し処理の場合、好みの問題はあるかもしれませんが、for文のほうが後から読み返した際などにループの条件が一か所にまとまっていて確認しやすいでしょう。

また、while文ではカウントアップなどの条件を変化させる処理を書き忘れて無限ループになるミスが起きがちです。for文なら後処理として先頭に書いてしまうので、無限ループになるミスが起きにくいメリットがあります。

次回へ続きます。