Javaのfor文とは?書き方や使い方をわかりやすく解説

Javaのfor文は、繰り返し処理を行うときにとても便利な仕組みです。でも、初めてプログラミングを学ぶ人にとっては、少し難しそうに見えるかもしれません。
この記事では、for文の基本から応用までを、できるだけわかりやすく解説していきます。
文法だけでなく、実際にどんな場面で使えるのか、ミスしやすいポイント、そして演習問題やよくある質問も交えて、読めばfor文がしっかり身につくよう構成しています。
この記事を読むことで、Javaでのfor文が「なんとなく」から「きちんと理解した」状態になります。
for文とは?
for文とは、ある処理を決まった回数だけ繰り返すときに使う文(命令)のことです。英語で”for”は「〜のために」という意味ですが、Javaでは「〜の回数分、何かをする」という感じで使われます。
たとえば、同じメッセージを10回表示したいとき、毎回同じコードを書くのは時間のムダですし、見た目もごちゃごちゃしますよね?
そんなときにfor文を使えば、たった数行でシンプルに書けるようになります。
for文の基本構造
Javaのfor文は、以下のような形で書きます。
for (初期化; 条件; 更新) {
繰り返す処理
}
それぞれの意味を見てみましょう:
- 初期化:カウント用の変数を作って、最初の値を設定します(例:
int i = 0
) - 条件:この条件がtrue(真)の間、繰り返しを続けます(例:
i < 5
) - 更新:繰り返しが1回終わるたびに、変数の値を変えます(例:
i++
)
具体的な例
for (int i = 0; i < 5; i++) {
System.out.println("こんにちは");
}
このコードは「こんにちは」と5回表示します。
int i = 0;
:iという変数を0からスタートi < 5;
:iが5未満の間、繰り返す(つまり0〜4まで)i++
:1回ごとにiを1つ増やす(i = i + 1)
このように、for文を使うことで、処理を何度も自動で繰り返すことができます。
なぜfor文を使うの?
プログラミングでは、「同じような処理を何度もしたい」という場面がとても多いです。そんなとき、同じコードをコピー&ペーストするのではなく、for文を使えば1回書くだけで済みます。
コードが短くなれば、ミスも減りますし、読みやすくなって、後から見たときにもわかりやすいです。たとえば、1から10までの数字を足していくような処理も、for文なら一瞬です。
例:1から10までの合計を出す
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("合計は" + sum);
このように、for文を使うと「何かを順番に数えていく」「配列の中身を順番に見ていく」といった処理がとても簡単になります。
for文のバリエーションと応用例
for文には、使い方のパターンがいくつかあります。ここでは代表的な3つを詳しく見ていきます。
通常のfor文(インデックスあり)
最もよく使われる基本の形です。スタート地点、ゴール地点、増やす量を自分で自由に決められるため、柔軟なループが書けます。
for (int i = 0; i < 10; i++) {
System.out.println("iの値: " + i);
}
配列やリストを使ったfor文
Javaでは、複数のデータをまとめて扱う配列(Array)やリスト(List)があります。for文はこれらのデータを順番に処理するときにとても便利です。
String[] fruits = {"りんご", "みかん", "バナナ"};
for (int i = 0; i < fruits.length; i++) {
System.out.println(fruits[i]);
}
fruits.length
は配列の長さ(要素の数)を意味します。
拡張for文(for-each文)
Javaには「拡張for文」と呼ばれる簡単な書き方も用意されています。これを使うと、配列やリストの中身を1つずつ取り出すのがより直感的にできます。
for (String fruit : fruits) {
System.out.println(fruit);
}
この書き方は、要素の順番や長さを気にせずループしたいときにとても便利です。
よくあるミスとその対策
for文はとても便利ですが、初心者がよくやってしまうミスもあります。
ここでは代表的なものと、それを防ぐ方法を紹介します。
条件式の書き間違い
たとえば、i <= 10
とすべきところを i = 10
と書いてしまうと、代入になってしまって無限ループやエラーになります。
// 間違い
for (int i = 0; i = 10; i++) {
System.out.println(i);
}
→ =
(代入)ではなく、==
(比較)や<
などの条件にしましょう。
初期化の位置ミス
for文の中で宣言した変数は、for文の外では使えません。forの外でもその変数を使いたいときは、外で先に宣言しましょう。
int i;
for (i = 0; i < 5; i++) {
System.out.println(i);
}
System.out.println("最終的なiの値: " + i);
無限ループに注意!
条件がずっとtrueのままだと、プログラムが止まらなくなります。特に終了条件を間違えるとこのようなことが起こります。
for (int i = 0; i >= 0; i++) { // iは増える一方で条件はずっとtrue
System.out.println(i);
}
→ 開発中は一度に大量にループしすぎないように、テスト時は小さめの範囲で確認しましょう。
練習問題
練習問題を3つ用意しました。
習った知識を定着させるためにも、ぜひアウトプットしてみてください。
問題1
1から100までの偶数をすべて表示してください。
ヒント:2から始めて2ずつ増やしましょう。
解答例:
for (int i = 2; i <= 100; i += 2) {
System.out.println(i);
}
問題2
5の倍数を1から50まで表示してください。
ヒント:5から始めて5ずつ増やせばOKです。
解答例:
for (int i = 5; i <= 50; i += 5) {
System.out.println(i);
}
問題3
配列に入っている名前をすべて表示してください。
String[] names = {"たかし", "さとみ", "けんじ"};
解答例:
for (String name : names) {
System.out.println(name);
}
よくある質問(FAQ)
よくある質問をまとめました。
Q1. for文とwhile文の違いは?
A. for文は「繰り返しの回数が決まっているとき」に向いています。一方で、while文は「条件を満たす限りずっと繰り返したいとき」に使われます。たとえば、ユーザーの入力が正しいまで繰り返すときはwhileが便利です。
Q2. for文の中で変数を宣言すると外で使えないの?
A. はい。for文の中で int i = 0
のように宣言した場合、そのi
はfor文の中だけで使えます。forの外でその変数を使いたい場合は、先に外でint i;
と宣言しておきましょう。
Q3. 無限ループになったらどうする?
A. 条件が常にtrueになっている可能性が高いです。プログラムを停止して、条件式や更新の部分が正しく書かれているか確認しましょう。IDEを使っている場合は「停止ボタン」で止められます。
Q4. 配列以外にもfor文は使えるの?
A. はい。配列だけでなく、List、Set、Mapなどのコレクションでも使えます。特に拡張for文(for-each文)との相性が良く、データを1つずつ取り出す処理に向いています。
Q5. 1つ飛ばしや奇数だけループしたいときは?
A. 更新のところを i += 2
にすれば、1つ飛ばしになります。たとえば、1から10までの奇数を表示するなら:
for (int i = 1; i <= 10; i += 2) {
System.out.println(i);
}
まとめ
Javaのfor文は、プログラミングの中でもとてもよく使う構文です。数値を使ったループ、配列やリストを使ったループなど、さまざまな場面で活躍します。
最初は文法を覚えるのに苦労するかもしれませんが、実際に使ってみるとすぐに慣れてきます。
この記事で紹介したように、基本形、配列の使い方、拡張for文、そしてエラーになりやすい例やFAQを押さえておけば、for文は怖くありません。
for文が書けるようになると、プログラミングの幅が一気に広がります。条件分岐やメソッドと組み合わせて、もっと複雑な処理もできるようになりますよ。
ぜひ練習問題も試して、自分の中で定着させてくださいね。