Java | break 文の使い方

Java Java
スポンサーリンク

ループの途中で抜ける考え方

「同じ処理を何回も繰り返す」のがループです。けれど、ある条件を満たしたら「もう続けなくていい、ここで止めたい」と思うことがあります。そのとき使うのが break(ブレーク)です。逆に、「今の1回だけスキップして次の繰り返しへ進みたい」ときは continue(コンティニュー)を使います。


break の基本

  • 役割: ループ(for / while / do-while)を「今すぐ終了」してループの外へ出る
  • 書き方: break;
  • 効き方: 実行された「一番内側のループ」だけが終わる

例1:合計が一定値を超えたら止める

int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i; // 1から順に足していく
    if (sum > 50) {
        break; // 合計が50を超えたらループ終了
    }
}
System.out.println("sum = " + sum); // どこで止まったか確認
Java
  • ポイント: 「条件を満たした瞬間に終了」するので、ムダな繰り返しをしない

例2:検索で見つかったら即終了

int[] arr = {3, 9, 12, 7, 21};
int target = 7;
boolean found = false;

for (int i = 0; i < arr.length; i++) {
    if (arr[i] == target) {
        found = true;
        System.out.println("見つけた位置: " + i);
        break; // 見つけたら終了
    }
}
if (!found) {
    System.out.println("見つかりませんでした");
}
Java
  • ポイント: 見つかったらそれ以上探さないので効率的

continue の基本(break との違い)

  • 役割: ループ自体は続けるが、「今の回の残り処理」をスキップして次の繰り返しへ
  • 書き方: continue;
  • 使い分け:
    • break = ループを終わる
    • continue = 今回だけ飛ばして次へ

例3:偶数だけ表示(奇数はスキップ)

for (int i = 1; i <= 10; i++) {
    if (i % 2 == 1) {
        continue; // 奇数のときは残りをスキップ
    }
    System.out.println(i); // 偶数だけ表示される
}
Java
  • ポイント: 条件に合わないデータを「処理対象から外す」場面で便利

無限ループと break

「回数が決められないけど、条件を満たしたら終わりたい」なら、while(true)+break の組み合わせが分かりやすいです。

例4:入力値が「exit」なら終了

java.util.Scanner sc = new java.util.Scanner(System.in);

while (true) {
    System.out.print("文字を入力してください(exitで終了): ");
    String s = sc.nextLine();

    if (s.equals("exit")) {
        break; // ここでループを抜ける
    }
    System.out.println("入力: " + s);
}

System.out.println("プログラムを終了します");
Java
  • ポイント: 「終わるタイミングが入力次第」でも、安全に抜けられる

ネスト(入れ子)ループとラベル付き break

break は「一番内側のループ」だけに効きます。外側のループまで一気に終わりたいときは「ラベル付き break」を使います。

例5:外側のループごと終わらせる

Outer:
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        int product = i * j;
        System.out.println(i + " * " + j + " = " + product);
        if (product > 10) {
            break Outer; // Outerラベルのforを終了(外側まで抜ける)
        }
    }
}
System.out.println("終了");
Java
  • ポイント: ラベル名(ここでは Outer)は慣例で先頭大文字が多いですが任意です

よくあるつまずきポイント

  • break の効き先: 「一番内側のループのみ」。if を抜けるわけではない(if はループではない)
  • continue の勘違い: ループ終了ではない。「今回の残り処理だけスキップ」
  • 条件の位置: break/continue を書く位置が早すぎる/遅すぎると意図通りに動かない
  • 無限ループの抜け道: while(true) を使うなら「必ず break の到達可能な条件」を用意する

練習(解答付き)

練習1:最初に3の倍数が見つかったら終了

  • 目標: 配列から最初の3の倍数を見つけて、その値と位置を表示。見つかったら即 break。
int[] nums = {2, 5, 11, 9, 14, 18};
for (int i = 0; i < nums.length; i++) {
    if (nums[i] % 3 == 0) {
        System.out.println("最初の3の倍数: " + nums[i] + "(位置 " + i + ")");
        break;
    }
}
Java

練習2:負の数が来たら合計をやめる

  • 目標: 入力された整数を順に合計。負の数が入力されたら合計を表示して終了。
java.util.Scanner sc = new java.util.Scanner(System.in);
int sum = 0;

while (true) {
    int x = sc.nextInt();
    if (x < 0) {
        break; // マイナスが来たら終了
    }
    sum += x;
}
System.out.println("合計 = " + sum);
Java

練習3:1〜50で7を含む数はスキップして表示

  • 目標: 17, 27, 37, 47 など「7を含む数」を continue で飛ばす。
for (int i = 1; i <= 50; i++) {
    String s = Integer.toString(i);
    if (s.contains("7")) {
        continue; // 7を含む数字はスキップ
    }
    System.out.println(i);
}
Java

直感で覚えるコツ

  • break: 「もう、今すぐ外へ出たい!」(ループ終了)
  • continue: 「今回はパス、次の人どうぞ」(次の繰り返しへ)
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました