
Java超|繰り返し処理とfor文の基本
同じ処理は、for文にまかせよう。
繰り返しを使えるようになると、Javaの処理は「何度も同じ技を出す修行」から「回数を管理して動くスマートな型」へ進化する。
これまで学んできた条件分岐では、「条件に合うときだけ処理する」「条件に合わないときは別の処理をする」といった流れを作れるようになりました。
ただし、プログラムでは条件分岐だけでは足りない場面もたくさんあります。
たとえば、
| やりたいこと | 手作業で書くとどうなるか |
|---|---|
| 同じメッセージを4回表示したい | 同じような表示文を4回書く必要がある |
| 1回目、2回目、3回目のように表示したい | 回数ごとに似た処理を書く必要がある |
| 入力された数だけ記号を並べたい | 入力値に合わせて処理回数を変える必要がある |
| 1から指定した数までの偶数だけ足したい | 数を順番に確認しながら条件判定する必要がある |
このような場面で、同じような処理を何行も手で書くのは大変です。
そこで使うのが、繰り返し処理、つまりループです。
Javaには代表的な繰り返し文として、for文、while文、do~while文があります。
その中でも for文 は、回数を数えながら処理を繰り返したいときによく使われます。
ドラゴンボール風にたとえると、for文は「決められた回数だけ型の修行を繰り返す仕組み」です。
1回目の素振り、2回目の素振り、3回目の素振り……というように、回数を数えながら同じ修行を続けます。
そして、条件を満たさなくなったら修行を終えて、次の行動へ進みます。
繰り返し処理とは何か
繰り返し処理とは、ある処理を何度も実行することです。
日常生活でも、繰り返しはよくあります。
| 日常の例 | 繰り返しの考え方 |
|---|---|
| 毎朝の準備 | 毎日同じ流れを行う |
| 修行の素振り | 決められた回数だけ繰り返す |
| 任務前の確認 | 必要な項目を順番に確認する |
| 掃除 | 決めた範囲が終わるまで続ける |
プログラムでも同じように、同じ処理を何度も行いたい場面があります。
| やりたいこと | 繰り返しの考え方 |
|---|---|
| メッセージを5回表示する | 5回同じ表示を繰り返す |
| 1から10まで順に処理する | 数字を1つずつ増やしながら処理する |
| 入力された数だけ記号を表示する | 入力値を回数として使う |
| 偶数だけを足す | 繰り返しの中で条件分岐を使う |
もし繰り返し文を使わなければ、同じような処理を何行も書く必要があります。
たとえば、同じメッセージを4回表示したい場合、繰り返しを使わないと次のようになります。
System.out.println("今日もJavaの型を練習しています。");
System.out.println("今日もJavaの型を練習しています。");
System.out.println("今日もJavaの型を練習しています。");
System.out.println("今日もJavaの型を練習しています。");4回ならまだ読めますが、これが10回、100回、1000回になると大変です。
for文を使えば、繰り返したい処理を1つのまとまりとして書き、必要な回数だけ実行できます。
ドラゴンボール風にたとえると、繰り返し処理は「型の反復修行」です。
同じ型を何度も繰り返すことで、動きが安定します。
Javaでも、同じ処理を繰り返すことで、効率よくプログラムを動かせます。
for文の基本
for文は、繰り返し処理を行うための代表的な構文です。
基本の形は次のようになります。
for(初期化; 条件式; 変化式){
繰り返したい処理
}for文の丸かっこの中には、3つの要素があります。
| 部分 | 役割 |
|---|---|
| 初期化 | 最初に1回だけ実行される。カウンタ変数を準備する |
| 条件式 | 繰り返しを続けるかどうかを判定する |
| 変化式 | 1回処理するたびに値を変化させる |
たとえば、1から5まで数えながら処理したい場合は、次のように書けます。
for(int i = 1; i <= 5; i++){
処理
}このfor文では、i という変数を使って回数を管理しています。
| 部分 | 内容 |
|---|---|
| int i = 1 | i を1から始める |
| i <= 5 | i が5以下の間は繰り返す |
| i++ | 1回終わるたびに i を1増やす |
この形では、i が 1、2、3、4、5 の間だけ処理が実行されます。
i が 6 になると、i <= 5 が false になるため、繰り返しは終了します。
ドラゴンボール風にたとえると、i は「修行回数を数えるカウンター」です。
1回目から始めて、5回目まで修行を続けます。
6回目になった瞬間、「もう決めた回数を超えた」と判断して修行を終えます。
for文の流れ
for文は、次の順番で動きます。
| 順番 | 内容 |
|---|---|
| 1 | 初期化を行う |
| 2 | 条件式を確認する |
| 3 | 条件が true ならブロック内の処理を実行する |
| 4 | 変化式を実行する |
| 5 | もう一度、条件式を確認する |
| 6 | 条件が false になったら終了する |
大切なのは、初期化は最初に1回だけ行われることです。
その後は、
条件確認 → 処理 → 変化式 → 条件確認 → 処理 → 変化式
という流れを繰り返します。
ドラゴンボール風にたとえると、for文は次のような修行の流れです。
| for文の要素 | ドラゴンボール風のイメージ |
|---|---|
| 初期化 | 修行1回目から始める |
| 条件式 | まだ修行回数が残っているか確認する |
| 処理 | 型の修行を行う |
| 変化式 | 修行回数を1つ進める |
| 条件が false | 修行終了 |
たとえば、for(int i = 1; i <= 4; i++) の場合は、次のように進みます。
| i の値 | i <= 4 | 動き |
|---|---|---|
| 1 | true | 処理を実行する |
| 2 | true | 処理を実行する |
| 3 | true | 処理を実行する |
| 4 | true | 処理を実行する |
| 5 | false | ループを終了する |
i が5になった時点で、条件式 i <= 4 が false になります。
そのため、for文の中の処理は実行されず、次の処理へ進みます。
図:for文の基本の流れ

この図が示していること
この図では、for文がどの順番で動くのかを示しています。
まず int i = 1 のように、カウンタ変数を準備します。
次に i <= 4 のような条件式を確認します。
条件が true ならブロック内の処理を実行します。
その後、i++ によって i を1増やし、再び条件式を確認します。
条件式が false になると、ループは終了します。
ここから分かることは、for文はただ同じ処理を機械的に実行しているのではなく、毎回条件を確認しながら繰り返しているということです。
for文で同じ処理を繰り返す
まずは、同じメッセージを4回表示するシンプルなプログラムを見ていきます。
ファイル名:Sample1.java
class Sample1
{
public static void main(String[] args)
{
for(int i = 1; i <= 4; i++){
System.out.println("今日もJavaの型を練習しています。");
}
System.out.println("型の練習メッセージの表示が終わりました。");
}
}実行結果は次のようになります。
今日もJavaの型を練習しています。
今日もJavaの型を練習しています。
今日もJavaの型を練習しています。
今日もJavaの型を練習しています。
型の練習メッセージの表示が終わりました。このプログラムでは、次のfor文が使われています。
for(int i = 1; i <= 4; i++){
System.out.println("今日もJavaの型を練習しています。");
}i は1から始まり、i <= 4 が true の間、メッセージを表示します。
1回表示するたびに i++ によって i が1増えます。
| i の値 | 条件 i <= 4 | 実行される処理 |
|---|---|---|
| 1 | true | メッセージを表示 |
| 2 | true | メッセージを表示 |
| 3 | true | メッセージを表示 |
| 4 | true | メッセージを表示 |
| 5 | false | ループ終了 |
i が5になると、i <= 4 が false になります。
そのため、繰り返しは終わります。
最後のメッセージは for文 の外にあります。
System.out.println("型の練習メッセージの表示が終わりました。");そのため、繰り返しが終わったあとに1回だけ表示されます。
ドラゴンボール風にたとえると、4回の型修行が終わったあとに、修行終了の合図を出している流れです。
ループ変数を使うと何回目かが分かる
for文で使う i のような変数は、繰り返しの回数を管理する役割を持ちます。
このような変数は、カウンタ変数と呼ばれることがあります。
カウンタ変数をループの中で使うと、「今は何回目なのか」を表示できます。
| カウンタ変数の使い方 | できること |
|---|---|
| i を表示する | 何回目かが分かる |
| i を計算に使う | 番号に応じて処理できる |
| i を条件に使う | 特定の回だけ処理できる |
| i を合計に使う | 数値を順番に足せる |
繰り返し処理は、ただ同じことを何度もするだけではありません。
カウンタ変数を使えば、回数に応じて少しずつ変化する処理も書けます。
ドラゴンボール風に言えば、毎回同じ型を出しながらも、「今は何回目の修行か」「何番目の任務か」を確認しながら進められるということです。
何回目の処理かを表示する
次は、何回目のあいさつなのかを表示するプログラムです。
ファイル名:Sample2.java
class Sample2
{
public static void main(String[] args)
{
for(int i = 1; i <= 5; i++){
System.out.println(i + "回目のあいさつです。おはようございます。");
}
System.out.println("あいさつの表示が終わりました。");
}
}実行結果は次のようになります。
1回目のあいさつです。おはようございます。
2回目のあいさつです。おはようございます。
3回目のあいさつです。おはようございます。
4回目のあいさつです。おはようございます。
5回目のあいさつです。おはようございます。
あいさつの表示が終わりました。このプログラムでは、ループのたびに i の値が変化しています。
| 繰り返し | i の値 | 表示される内容 |
|---|---|---|
| 1回目 | 1 | 1回目のあいさつです。おはようございます。 |
| 2回目 | 2 | 2回目のあいさつです。おはようございます。 |
| 3回目 | 3 | 3回目のあいさつです。おはようございます。 |
| 4回目 | 4 | 4回目のあいさつです。おはようございます。 |
| 5回目 | 5 | 5回目のあいさつです。おはようございます。 |
i を文字列の中で使うことで、同じ表示の中にも変化をつけられます。
ドラゴンボール風にたとえると、1回目の型、2回目の型、3回目の型……と、修行回数を声に出しながら進めているようなイメージです。
ループ内で使う変数の役割
for文の中で使う変数には、いろいろな役割があります。
| 役割 | 例 |
|---|---|
| 回数を数える | 1回目、2回目、3回目 |
| 番号を表す | 1番の任務、2番の任務 |
| 値を順番に変える | 1から10まで増やす |
| 条件の判定材料にする | 何回繰り返したかで終了する |
| 合計計算に使う | 1から順に足す |
for文を読むときは、「この変数が今どんな値なのか」を意識すると分かりやすくなります。
たとえば、i <= 5 という条件があるなら、i が5以下の間は処理が続きます。
i++ があるなら、1回ごとに i が1増えます。
この2つが見えるだけでも、for文の流れをかなり追いやすくなります。
変数の使える範囲に注意する
for文の中で宣言した変数は、基本的にその for文 の中だけで使えます。
for(int i = 1; i <= 5; i++){
System.out.println(i);
}この i は、for文の外では使えません。
| 宣言場所 | 使える範囲 |
|---|---|
| for文の中で int i = 1 と宣言 | そのfor文の中だけ |
| for文の前で int i; と宣言 | for文のあとでも使える |
ループが終わったあとにも i を使いたい場合は、for文の外で先に宣言しておきます。
int i;
for(i = 1; i <= 5; i++){
System.out.println(i + "回目の処理です。");
}
System.out.println((i - 1) + "回くり返しました。");ここで i - 1 としているのは、ループ終了時の i が、条件を満たさなくなった値まで進んでいるからです。
たとえば、i <= 5 で繰り返した場合、最後に i++ されて i は6になります。
そのため、実際に繰り返した回数を表示したいなら、i - 1 を使うと5になります。
| 状態 | i の値 |
|---|---|
| 5回目の処理中 | 5 |
| 5回目のあとに i++ | 6 |
| 条件 i <= 5 | false |
| 実際の回数 | i - 1 で5 |
入力した回数だけ記号を表示する
for文は、決まった回数だけでなく、入力された数だけ繰り返すこともできます。
ここでは、入力された数だけ ● を表示します。
ファイル名:Sample3.java
import java.io.*;
class Sample3
{
public static void main(String[] args) throws IOException
{
System.out.println("いくつ●を表示しますか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int num = Integer.parseInt(str);
for(int i = 1; i <= num; i++){
System.out.print("●");
}
}
}実行例は次のようになります。
いくつ●を表示しますか?
6
●●●●●●このプログラムでは、入力された値 num を条件式に使っています。
for(int i = 1; i <= num; i++){
System.out.print("●");
}num が6なら、i は1から6まで変化します。
そのため、● が6個表示されます。
| 入力された値 | ループ回数 | 表示される記号 |
|---|---|---|
| 3 | 3回 | ●●● |
| 6 | 6回 | ●●●●●● |
| 10 | 10回 | ●●●●●●●●●● |
このように、for文は固定回数だけでなく、実行時に決まる回数にも対応できます。
ドラゴンボール風にたとえると、任務前に「何回型を練習するか」を入力し、その回数だけ型の印を並べていくようなイメージです。
図:入力された数だけ繰り返す

この図が示していること
この図では、入力された値 num を使って、for文の繰り返し回数を決める流れを示しています。
num が6なら、i は1から6まで変化します。
そのため、● が6個表示されます。
num が3なら3回、num が10なら10回のように、入力値によって繰り返し回数が変わります。
ここから分かることは、for文は固定された回数だけでなく、実行時に決まった値を使って繰り返し回数を制御できるということです。
繰り返しを使って合計を求める
次は、for文と if文 を組み合わせて、1から入力した数までの偶数の合計を求めるプログラムです。
ファイル名:Sample4.java
import java.io.*;
class Sample4
{
public static void main(String[] args) throws IOException
{
System.out.println("いくつまでの偶数の合計を求めますか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int num = Integer.parseInt(str);
int sum = 0;
for(int i = 1; i <= num; i++){
if(i % 2 == 0){
sum += i;
}
}
System.out.println("1から" + num + "までの偶数の合計は" + sum + "です。");
}
}実行例は次のようになります。
いくつまでの偶数の合計を求めますか?
10
1から10までの偶数の合計は30です。このプログラムでは、1から num まで順番に i を変化させます。
for(int i = 1; i <= num; i++){
if(i % 2 == 0){
sum += i;
}
}for文の中で、if文を使って偶数かどうかを判定しています。
if(i % 2 == 0)i % 2 は、i を2で割った余りを求めます。
余りが0なら、i は偶数です。
偶数だった場合だけ、sum に i を加えています。
sum += i;num が10の場合、次のように計算されます。
| i の値 | 偶数かどうか | sum の変化 |
|---|---|---|
| 1 | いいえ | 0 |
| 2 | はい | 0 + 2 = 2 |
| 3 | いいえ | 2 |
| 4 | はい | 2 + 4 = 6 |
| 5 | いいえ | 6 |
| 6 | はい | 6 + 6 = 12 |
| 7 | いいえ | 12 |
| 8 | はい | 12 + 8 = 20 |
| 9 | いいえ | 20 |
| 10 | はい | 20 + 10 = 30 |
このように、for文とif文を組み合わせると、繰り返しながら条件に合うものだけを処理できます。
ドラゴンボール風にたとえると、1番から10番までの任務札を順番に確認し、偶数番号の札だけを集めて合計しているような流れです。
図:for文とif文を組み合わせて偶数だけ足す

この図が示していること
この図では、for文とif文を組み合わせて、偶数だけを合計する流れを示しています。
for文によって、i の値を1から num まで順番に確認します。
その中で、i % 2 == 0 という条件を使って、偶数かどうかを判定します。
偶数なら sum += i によって合計に加えます。
奇数なら何も足さず、次の数へ進みます。
num が10の場合は、2、4、6、8、10 が足され、合計は30になります。
ここから分かることは、for文は回数や順番を管理し、if文はその中で条件に合うものだけを選ぶ役割を持つということです。
for文では複数の文も繰り返せる
for文の中では、1文だけでなく、複数の文をまとめて繰り返せます。
そのときに使うのがブロックです。
for(int i = 1; i <= 3; i++){
System.out.println("現在の番号は" + i + "です。");
System.out.println("次の処理へ進みます。");
}このように書くと、{ } の中にある2つの文がセットで繰り返されます。
| 書き方 | 意味 |
|---|---|
| 文を1つだけ書く | その1文だけが繰り返される |
| { } で囲む | 囲まれた文すべてが繰り返される |
実際のプログラムでは、繰り返したい処理が複数行になることが多いです。
そのため、for文ではブロックを使う書き方に慣れておくと安心です。
ドラゴンボール風にたとえると、ブロックは「1回の修行で行う一連の動き」です。
構える。
型を出す。
次の型へ進む。
これらを1セットとして、何度も繰り返します。
いろいろなfor文の書き方
for文は、初期値、条件式、変化式を変えることで、さまざまな繰り返しに対応できます。
0から9までの10回繰り返し
for(int i = 0; i < 10; i++){
処理
}この書き方では、i は0から9まで変化します。
合計10回繰り返されます。
1から10まで順に処理する
for(int i = 1; i <= 10; i++){
処理
}この書き方では、i は1から10まで変化します。
番号をそのまま表示したいときに分かりやすい形です。
10から1へ逆向きに処理する
for(int i = 10; i >= 1; i--){
処理
}この書き方では、i は10から1へ減っていきます。
カウントダウンや逆順処理に使いやすい形です。
| 書き方 | 動き |
|---|---|
| i = 0; i < 10; i++ | 0から9まで扱う |
| i = 1; i <= 10; i++ | 1から10まで扱う |
| i = 10; i >= 1; i-- | 10から1まで扱う |
特に、< と <= の違いは大切です。
| 条件式 | 含まれる値 |
|---|---|
| i < 10 | 10は含まれない |
| i <= 10 | 10も含まれる |
この違いで、繰り返し回数が変わります。
最初のうちは、実際に i の値を書き出して確認すると理解しやすいです。
for文でよくあるつまずき
for文は便利ですが、最初のうちは似たミスをしやすいです。
| よくあるミス | 内容 |
|---|---|
| 条件式の書き間違い | < と <= の違いで回数がずれる |
| 増減のし忘れ | i++ を書かないと終わらないループになることがある |
| 開始値のミス | 1から始めるつもりが0から始めてしまう |
| 変数の範囲の誤解 | for文の中で宣言した変数を外で使おうとする |
| ブロックの範囲の誤解 | どこまでが繰り返されるか分からなくなる |
たとえば、次のコードは注意が必要です。
for(int i = 1; i <= 5; ){
System.out.println(i);
}このfor文には、i++ のような変化式がありません。
そのため、i の値が変わらず、i <= 5 がずっと true のままになる可能性があります。
このように、条件がいつ false になるのかを考えることが大切です。
| 見るポイント | 理由 |
|---|---|
| 初期値 | どこから始まるか分かる |
| 条件式 | いつまで繰り返すか分かる |
| 変化式 | 値がどう変わるか分かる |
| ブロック | 何を繰り返すか分かる |
ドラゴンボール風にたとえると、修行回数を進める合図を忘れると、ずっと1回目の修行から抜け出せないようなものです。
for文では、初期化、条件式、変化式の3つがそろっているかを確認することが大切です。
for文は短くても強力
for文のよいところは、少ないコードで多くの処理を表現できることです。
同じ処理を10回書こうとすると、手で10行並べる必要があります。
しかし、for文なら、繰り返し回数を条件で管理できます。
また、ループ変数を使えば、ただ同じことを繰り返すだけでなく、次のような処理も書けます。
| できること | 内容 |
|---|---|
| 回数の表示 | 1回目、2回目のように表示する |
| 番号付きの処理 | 番号を使って処理する |
| 合計の計算 | 数値を順番に足す |
| 条件に合うものだけ処理 | if文と組み合わせる |
| 入力値に応じた回数の処理 | 入力された数だけ繰り返す |
for文は、同じ処理を繰り返すための文であり、回数や順序を管理するための文でもあります。
ドラゴンボール風にたとえると、for文は「ただ同じ型を繰り返すだけの修行」ではありません。
何回目かを数えたり、偶数回だけ特別な型を出したり、指定された回数だけ印を刻んだりできます。
繰り返し処理を学ぶ意味
Javaを学んでいくと、繰り返し文は何度も出てきます。
配列、文字列処理、入力の連続処理、ゲームのロジック、表の出力など、さまざまな場面でループが使われます。
| 今後の学習内容 | for文とのつながり |
|---|---|
| 配列 | 要素を順番に取り出す |
| 文字列処理 | 文字を1つずつ確認する |
| 入力処理 | 複数回入力を受け取る |
| 表の出力 | 行や列を繰り返して表示する |
| ゲーム処理 | ターンや回数を管理する |
| 合計や平均 | 値を順番に集計する |
for文を理解すると、Javaのコードを読む力も書く力もかなり伸びます。
繰り返し処理を読むときは、次の点を意識すると理解しやすいです。
| 意識したいこと | 理由 |
|---|---|
| 変数がどう変化しているかを見る | ループの動きが見える |
| 条件がいつ false になるかを考える | 終了のタイミングが分かる |
| 何回繰り返されるかを数える | 回数のミスを見つけやすい |
| ブロックの中の処理を確認する | どこまでが繰り返されるか分かる |
for文は、最初は丸かっこの中が少し長く見えるかもしれません。
でも、初期化、条件式、変化式の3つに分けて見れば、かなり読みやすくなります。
ドラゴンボール風にたとえると、for文は「回数を決めて型を磨く反復修行」です。
何回繰り返すのか。
そのたびに何をするのか。
いつ終わるのか。
この3つを意識できるようになると、Javaの繰り返し処理はぐっと理解しやすくなります。








