Javaにおける「for」ループは、特定の条件が満たされる限り、繰り返し処理を行うための基本的な制御構造です。この記事では、Javaの「for」ループの構文、使用方法、さまざまな例について詳細に解説します。
1. 「for」ループの基本構文
Javaにおける「for」ループの基本構文は以下の通りです。
javafor (初期化式; 条件式; 更新式) {
// 繰り返し処理するコード
}
この構文は3つの部分から構成されています:
-
初期化式:ループが開始される前に1回だけ実行される処理です。主にカウンタ変数を初期化するために使用します。
-
条件式:ループが実行されるべきかどうかを判定する条件です。この条件が
trueである限り、ループが繰り返し実行されます。 -
更新式:ループの各イテレーション(繰り返し)ごとに実行される処理です。主にカウンタ変数を変更します。
例えば、0から9までの数字を出力する場合、以下のように「for」ループを使用できます。
javafor (int i = 0; i < 10; i++) {
System.out.println(i);
}
この例では、iが0から9までの値を取るたびに、System.out.println(i)が実行され、数字が順番に表示されます。
2. 初期化式、条件式、更新式の詳細
初期化式
初期化式は、ループが実行される前に1度だけ実行されます。この部分では、通常、カウンタ変数の初期化を行います。初期化式はカンマで区切って複数書くこともできますが、通常は1つの変数を使うことが一般的です。
javafor (int i = 0, j = 10; i < 5; i++, j--) {
System.out.println("i = " + i + ", j = " + j);
}
この例では、iとjがそれぞれ初期化され、iは増加し、jは減少します。
条件式
条件式は、ループを続けるかどうかを決定する部分です。この条件がtrueであれば、ループが実行され続けます。条件式がfalseになった時点でループが終了します。
javafor (int i = 0; i < 5; i++) {
if (i == 3) {
break; // iが3になったらループを終了
}
System.out.println(i);
}
この例では、iが3に達した時点でbreak文が実行され、ループが終了します。
更新式
更新式は、ループの各イテレーション後に実行される部分です。通常、カウンタ変数をインクリメントまたはデクリメントするために使用されますが、複雑な更新処理も可能です。
javafor (int i = 0; i < 10; i += 2) {
System.out.println(i);
}
この例では、iが2ずつ増加していきます。出力される値は0, 2, 4, 6, 8となります。
3. forループのネスト
「for」ループは他の「for」ループの中にネスト(入れ子)して使用することもできます。ネストされた「for」ループは、2次元配列やマトリックスの操作などでよく使用されます。
javafor (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.println("i = " + i + ", j = " + j);
}
}
この例では、外側のループが3回繰り返されるたびに、内側のループがさらに3回繰り返されます。その結果、iとjの組み合わせが9回表示されます。
4. 無限ループ
条件式を常にtrueに設定すると、無限ループが発生します。無限ループは、特定の条件が満たされるまで繰り返し処理を行いたい場合に使用されます。
javafor (int i = 0; true; i++) {
if (i == 5) {
break; // iが5になったらループを終了
}
System.out.println(i);
}
この例では、無限にループが続きますが、iが5に達するとbreak文によりループが終了します。
5. 代替的な使い方
Javaの「for」ループは、配列やリストの繰り返し処理に便利です。例えば、配列を使って「for」ループを使用する方法を見てみましょう。
javaint[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
この例では、配列numbersの各要素を1つずつ出力しています。
さらに、Java 5以降では「拡張forループ」も導入されており、配列やコレクションを簡単に繰り返し処理できます。
javafor (int number : numbers) {
System.out.println(number);
}
このコードは、上記のコードと同じ結果を得ることができますが、より簡潔で読みやすいです。
6. まとめ
Javaの「for」ループは、繰り返し処理を効率よく行うために非常に便利な構文です。初期化式、条件式、更新式を理解し、様々な使い方を学ぶことで、コードの可読性と効率を大いに向上させることができます。また、ネストされたループや無限ループ、拡張forループなどの高度な使い方を覚えることで、より複雑な処理にも対応できるようになります。
