Javaを学び始めたとき、多くの人が最初に出会う制御構文が「for文」です。
繰り返し処理を効率的に行うfor文は、プログラミングにおける基本中の基本。
しかし、初学者にとっては少しややこしく感じるかもしれません。
この記事では、Javaのfor文について、基礎から実践的な使い方までを丁寧に解説していきます。
目次
for文とは?
for文は、一定の条件を満たす間、特定の処理を繰り返し実行するための制御構文です。Javaにおいて、同様の繰り返し処理を行う構文としてはwhile文
やdo-while文
もありますが、for文は特に回数が決まっている繰り返しに適しています。
for文の基本構文
for (初期化; 条件式; 更新処理) {
// 繰り返し実行される処理
}
各部分の意味:
部分 | 説明 |
---|---|
初期化 | 繰り返しの前に1回だけ実行される処理 |
条件式 | trueの間、繰り返し処理が続く |
更新処理 | 繰り返しのたびに実行される処理 |
例:1から5までの数字を出力する
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
出力:
1
2
3
4
5
for文の流れを図解で理解
初期化 → 条件式チェック → 本体処理 → 更新処理 → 条件式チェック → ...
この流れを頭に入れておくと、for文の挙動が自然と理解できるようになります。
ネストされたfor文(多重ループ)
for文の中にfor文を書くことも可能です。これをネスト(多重ループ)と呼びます。
例:九九表を出力する
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(i * j + "\t");
}
System.out.println();
}
for-each文(拡張for文)
Javaでは配列やコレクションを簡単にループ処理するために、拡張for文(for-each)が用意されています。
構文:
for (型 変数 : 配列やリスト) {
// 要素ごとの処理
}
例:
String[] fruits = {"apple", "banana", "cherry"};
for (String fruit : fruits) {
System.out.println(fruit);
}
break文とcontinue文で制御を追加
break文:ループを途中で抜ける
for (int i = 1; i <= 10; i++) {
if (i == 5) break;
System.out.println(i);
}
// 1〜4まで表示
continue文:その回の処理をスキップ
for (int i = 1; i <= 5; i++) {
if (i == 3) continue;
System.out.println(i);
}
// 3以外を表示
for文を使う場面の具体例
文字列の逆順表示:
String str = "hello";
for (int i = str.length() - 1; i >= 0; i--) {
System.out.print(str.charAt(i));
}
// 出力: olleh
配列の合計値を求める:
int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;
for (int num : numbers) {
sum += num;
}
System.out.println("合計: " + sum);
よくあるエラーと注意点
無限ループの例:
for (int i = 0; i >= 0; i++) {
// 条件が永遠にtrue → 無限ループ
}
配列の範囲外アクセス:
int[] arr = {1, 2, 3};
for (int i = 0; i <= arr.length; i++) {
// i == 3のときにエラー(IndexOutOfBoundsException)
}
その他例文
例1:偶数のみ出力するプログラム
for (int i = 1; i <= 20; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
例2:配列の中から最大値を見つける
int[] nums = {12, 45, 7, 89, 23};
int max = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] > max) {
max = nums[i];
}
}
System.out.println("最大値: " + max);
まとめ
Javaのfor文はシンプルながら非常に強力な繰り返し構文です。次のポイントを押さえておきましょう。
- 回数が決まっている繰り返しに最適
- 配列やリストには拡張for文が便利
- breakやcontinueでループを柔軟に制御
- ネストで複雑な処理も可能
for文を自在に扱えるようになると、Javaでのコーディングの幅が一気に広がります。
初心者のうちはまず、「実際にコードを書いて動かしてみる」ことが大切です。
ぜひたくさん手を動かしてみてください!