
【6日でできるJava入門】制御文⑥ ループの制御
プログラムで繰り返し処理(ループ)を制御するためには、breakやcontinueといった特別なキーワードを使います。これらを使うことで、ループの途中で処理を終了したり、特定の条件下で一部の処理をスキップすることができます。ここでは、その基本的な使い方から応用までを例題付きで解説します。

1.break文によるループの中断
1.1. break文の基本構文と使用例
break文は、今実行中のループから即座に抜ける命令です。- 主に「目的の値が見つかった時点でループを中断したい」ときなどに使います。
サンプルプログラム:特定値の探索
ファイル名: lesson13_1.java
public class lesson13_1 {
public static void main(String[] args) {
int[] data = {1, 2, 3, 3, 2, 5, 6, 7, 1, 0, 3, 1, 4, 8, 2, 5};
int i;
for (i = 0; i < data.length; i++) {
if (data[i] == 8) {
break;
}
}
System.out.println("8は配列の " + i + " 番目に見つかりました。");
}
}実行結果
8は配列の 13 番目に見つかりました。1.2. ラベル付きbreak文(多重ループからの脱出)
- 多重ループ(ループの入れ子)では、
breakは一番内側のループしか抜けません。 - 複数のループから一気に抜けたいときは、「ラベル」をつけて
break文を使います。
ファイル名: lesson13_2.java
public class lesson13_2 {
public static void main(String[] args) {
outer:
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 50; j++) {
if (i * j == 391) {
System.out.println(i + " * " + j + " = 391");
break outer;
}
}
}
}
}実行結果
17 * 23 = 3912.continue文によるループのスキップ
2.1. continue文の基本構文と使用例
continue文は、その回のループの残りの処理をスキップして、次の繰り返しに進む命令です。- 主に「条件を満たさない場合は何もしないで、次のループに進みたい」ときに使います。
サンプルプログラム:特定値のカウントと位置表示
ファイル名: lesson13_3.java
public class lesson13_3 {
public static void main(String[] args) {
int[] data = {1, 2, 3, 3, 2, 5, 6, 7, 1, 0, 3, 1, 4, 8, 2, 5};
int count = 0;
for (int i = 0; i < data.length; i++) {
if (data[i] != 3)
continue; // 3でなければスキップ
count++;
System.out.println("3は " + i + " 番目にあります。");
}
System.out.println("3の出現回数: " + count + " 回");
}
}実行結果
3は 2 番目にあります。
3は 3 番目にあります。
3は 10 番目にあります。
3の出現回数: 3 回2.2. ラベル付きcontinue文
- ラベルを使うことで、多重ループの特定のループの先頭に戻ることも可能です。
- ただし、複雑になりやすいので注意が必要です。
ファイル名: lesson13_4.java
public class lesson13_4 {
public static void main(String[] args) {
outer:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (i == j) continue outer;
System.out.println("i=" + i + ", j=" + j);
}
}
}
}実行結果
i=2, j=1
i=3, j=1
i=3, j=2表:breakとcontinueのまとめ
| 制御文 | 動作 | 用途例 |
|---|---|---|
break | ループを途中で完全に抜ける。 | 条件一致で繰り返し処理を中断したいとき |
continue | その回の処理をスキップし、ループの次の繰り返しへ。 | 一部の条件だけ処理を実行したくないとき |
| ラベル付き | 多重ループで外側や特定のループにも対応 | 複雑な入れ子ループから特定の場所に戻る時 |
まとめ
breakはループ自体を抜ける、continueはその回の処理だけスキップする。- ラベル付きbreak/continueで多重ループの制御も可能
- どちらも使い過ぎはプログラムの可読性を下げるため、シンプルな構造を心がける。
