Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java入門
  4. Javaのbreak文の使い方とは?| 多重ループをbreakで抜ける方法を知ろう

Javaのbreak文の使い方とは?| 多重ループをbreakで抜ける方法を知ろう

  • Java入門
公開日時:
Javaのbreak文の使い方とは?| 多重ループをbreakで抜ける方法を知ろう
この記事でわかること
    システム
    エンジニア
    break文はどういうときに使うのですか。
    プロジェクト
    マネージャー
    break文はfor文、while文、do-while文のループ構造やswitch文の中で使います。

    break文とは?


    Javaのbreak文は、ループやswitch文を抜け出すときに使う文です。制御の流れを変えるために使います。break文は、for文、while文およびdo-while文のループ構造と、switch文の中で使います。

    以下では、それぞれの文について、プログラム例をあげながら、break文の使い方を解説していきます。

    ループからbreakする方法

    Javaのループ本体の処理中でbreak文を実行すると、break文が属する内側ループの外に制御が移り、ループを終了します。

    ループの種類には、for、while、do-whileがあります。

    for文からbreak

    ループカウンタiのforループ内で、配列aの要素a[i]の値をチェックし、値が10を超えたらループを抜ける処理を記述したのが、次に示すJavaコードです。

    実行結果は、次のようになります。i=2の繰り返しが途中で終了していることがわかります。

    whileループからbreak

    whileループ内にbreak文を記述したJavaコードの例を示します。

    実行結果は、次のようになります。i=2の繰り返しの途中で、ループが終了していることがわかります。

     

    do-while文の場合も同様ですので、コードを書いて試してください。

    switch文でのbreakの使い方

    switch文は、case節により、処理を分岐させる構文です。ある値による分岐条件の場合分けが多い場合に使います。

    以下では、Javaのswitch文におけるbreakの使い方を、例をあげて説明します。

    case処理の最後にはbreakを記述

    switch文の各case処理の最後には、break文をおきます。

    switch文のJavaコード例を示します。

     

    この例では、変数valの値が1のとき、2のとき、その他のとき(default)で、処理を分けています。もしvalの値が2ならば、case 2に分岐して処理を行った後、breakの実行によりswitch文を抜けます。valの値が2の場合の実行結果は、次のようになります。

    switch文でbreakを省略する

    Javaのswitch文でbreakを省略すると、そのまま次のcaseの処理を実行します。caseは単なるラベルなので、制御の流れは変わらないからです。

    意図的にbreakを省略したswitch文を書くときもあります。次のコード例を用いて説明します。

    上のコードでは、valの値が1と2の場合には同じ処理をするため、case1の後にはbreak文を置かず、case2に進みます。このように複数のcaseをまとめる書き方は、しばしば利用されます。

    valの値が3と4のときには同じような処理をするが、3の場合だけ前処理が必要だとします。上のコードでは、3と4の処理の共通部をcase4の下に記述することで、処理を実現しています。valの値が3の場合の実行結果は、次のようになります。

     

    このような記述方法は、わかりにくく、バグの原因となりやすいので、あまり使わない方がいいでしょう。もし使う場合には、breakの省略箇所に必ずコメントを入れましょう。

    多重ループをbreakで抜ける方法

    Javaのループ内のbreak文は、break文を囲む最も内側のループを抜け出します。break文で多重ループを抜け出したい場合には、どのような記述方法があるでしょうか。

    ここでは、breakでループを1つずつ抜ける方法と、ラベル付きbreakで一気に抜ける方法を説明します。

    多重ループを1つずつbreakする

    多重ループの内側でbreak文を実行すると、ループ1つ分しか抜け出しません。さらに外側ループを抜け出すには、break条件を満たしたことをフラグに設定しておき、外側ループ内でまたbreakを実行する必要があります。

    次に示すJavaコードの例では、内側ループを抜けるbreak文の直前で、フラグ変数をtrueに設定しています。内側ループの直後では、このフラグがセットされていたら外側ループをbreakします。

    boolean break_flag = false;
    for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
    if (a[i][j] < 0) {
    System.out.println(“”!!! (i,j)=(“”+i+””,””+j+””) でjループを抜ける””);
    break_flag = true;
    break; // 内側ループを抜けます
    }
    sum += a[i][j];
    }
    if (break_flag) {
    System.out.println(“”!!! i=”” + i + “” でiループを抜けます””);
    break; // 外側ループを抜ける
    }
    System.out.println(“”i=”” + i + “” の処理を終了””);
    }
    System.out.println(“”2重ループを終了””);
    (i,j)=(2,3)で条件を満たす場合の実行結果は、次のようになります。

    ラベル付きbreakで多重ループを抜ける

    外側のループまで一気に抜けるには、ラベル付きのbreak文を使う方法があります。抜けたい対象ループにラベルを付けておき、「break ラベル名;」のように記載すると、ラベルの付いたループを抜け出し、ループ後のコードに制御が移ります。

    次のコード例では、外側のforループにLOOP_Iというラベルを付加しています。内側の「break LOOP_I;」を実行すると、外側ループを終了します。

    LOOP_I:
    for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
    if (a[i][j] < 0) {
    System.out.println(“”!!! (i,j)=(“”+i+””,””+j+””) でLOOP_Iを抜けます””);
    break LOOP_I; // 外側ループを抜ける
    }
    sum += a[i][j];
    }
    System.out.println(“”i=”” + i + “” の処理を終了””);
    }
    System.out.println(“”2重ループを終了””);
    上のコードの実行結果は、次のようになり、2つのループを一気に抜けていることがわかります。

    システム
    エンジニア
    多重ループをbreakで抜けるには、1つずつbreakする方法と、ラベル付きbreakで一気に抜ける方法があるのですね。
    プロジェクト
    マネージャー
    そのとおりです。コード例を参考にして、ぜひご自身で試してみてください。

    Javaのbreak文を使いこなそう

    ループやswitch文を抜け出し、制御の流れを変えるために使うJavaのbreak文の使い方を解説しました。

    多重ループを一気に抜けられるラベル付きbreakについても述べました。コード例を参考に、break文を使うコードを色々と試してみてください。

    FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Java新着案件New Job