本文へスキップ
BecomeCoder

Java文法コース · 第4章 制御構文 ― 処理の流れを分岐・繰り返す · レッスン19

break と continue ― ループを途中で制御する

ブラウザで完結

導入

「条件を満たしたらすぐループを抜けたい」「特定の条件のときだけスキップしたい」——ループの流れを途中でコントロールしたいときに使うのが breakcontinue です。

説明

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i == 6) {
                break;
            }
            System.out.println(i);
        }

        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue;
            }
            System.out.println(i);
        }
    }
}
  • break; … ループをその場で完全に抜けます。1つ目のループでは i == 6 になった瞬間にループ自体が終わるので、1〜5 しか表示されません。
  • continue;今回だけスキップして次の繰り返しへ進みます。ループ自体は終わりません。2つ目のループでは偶数のときだけ continue するので、奇数(1, 3, 5, 7, 9)だけが表示されます。

「途中でやめる」のが break、「今回だけ飛ばす」のが continue と覚えましょう。

やってみよう

下のエディタで i == 6 の数値を変えたり、continue の条件を i % 3 == 0 に変えたりして、表示される数がどう変わるか確かめましょう。

演習

1〜20の中で最初に7で割り切れる数を見つけたら break して、その数を表示してください(結果は 7)。

ヒント1を見る

for (int i = 1; i <= 20; i++) { if (i % 7 == 0) { found = i; break; } } のように、見つかったら変数に入れて抜けます。

ヒント2を見る

ループの前に int found = -1; のように初期値を用意しておきます。最後に System.out.println(found);

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。