Java入門|途中でやめたいときのbreak文

必要なところで、きっぱり止める。break文を覚えると、繰り返し処理を思いどおりにコントロールできる。

これまで、for文やwhile文、do~while文を使って、同じ処理を何度もくり返す方法を見てきました。
こうした繰り返しはとても便利ですが、実際のプログラムでは「最後まで続ける必要はない」「条件を満たしたら、その時点で終わらせたい」という場面もよくあります。

たとえば、目的のデータが見つかったら、それ以上探し続ける必要はありませんよね。あるいは、入力された値が特定の条件に達したら、その時点でループを抜けたほうが自然な場合もあります。そんなときに役立つのが、break文です。

break文は、繰り返し処理の途中で実行すると、そのループをその場で終わらせて外へ抜けることができます。もともとの条件がまだtrueであっても、break文が実行された時点で流れを変えられるのが大きな特徴です。

ここでは、break文の基本の働き、通常のループとの違い、サンプルプログラムの動き、ネストしたループでの注意点まで、やわらかく丁寧に見ていきましょう。break文の使い方がわかると、繰り返し処理をより自然に、そして実用的に書けるようになります。

break文とは何か

break文は、現在実行しているループやブロックを、その場で強制的に終了させる文です。

書き方はとてもシンプルです。

break;

この1文が実行されると、そのbreak文が含まれている繰り返し処理は終了し、ループの外側へ処理が移ります。

つまり、break文は「もう続けなくてよい」と判断したときに、ループを途中で切り上げるための命令です。

break文が必要になる場面

繰り返し処理は、ふつうは条件がfalseになるまで続きます。
たとえば for(int i = 1; i <= 10; i++) なら、通常は10回くり返されます。

ですが、実際には次のような場面があります。

場面break文が役立つ理由
探していた値が見つかったそれ以上くり返す必要がない
一定の条件に達した途中で終了したい
異常な状態を見つけたその場で処理を打ち切りたい
ユーザーが中止を選んだすぐにループを抜けたい

このように、break文は「最後まで続けるより、途中で終えたほうが自然な処理」に向いています。

break文の基本イメージ

break文は、ループの中で条件分岐と一緒に使われることが多いです。
たとえば、次のような流れです。

for(くり返し){
    処理
    if(途中でやめたい条件){
        break;
    }
}

この形にすると、ふだんはループを続けながら、必要なときだけbreak文で抜け出せます。

Sample9.java でbreak文を見てみよう

では、break文を使ったサンプルプログラムを見ていきましょう。

ファイル名:Sample9.java

import java.io.*;

class Sample9
{
    public static void main(String[] args) throws IOException
    {
        System.out.println("何回目でお知らせを終了しますか?(1~10)");

        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();
        int stop = Integer.parseInt(str);

        for(int i = 1; i <= 10; i++){
            System.out.println(i + "回目のお知らせを表示しています。");

            // 指定した回数になったらループを終了する
            if(i == stop){
                break;
            }
        }

        System.out.println("お知らせの表示を終了しました。");
    }
}

実行結果の例

たとえば、5 を入力した場合は次のようになります。

何回目でお知らせを終了しますか?(1~10)
5
1回目のお知らせを表示しています。
2回目のお知らせを表示しています。
3回目のお知らせを表示しています。
4回目のお知らせを表示しています。
5回目のお知らせを表示しています。
お知らせの表示を終了しました。

このプログラムのしくみ

このプログラムでは、本来ならfor文によって1回目から10回目まで処理を続けます。
けれども、ユーザーが入力した回数になったら break を実行し、その場でループを終えています。

つまり、10回まで続く予定だったループを、途中で打ち切っているわけです。

流れを表にすると

5 を入力した場合の動きは、次のようになります。

iの値表示される内容i == stopbreak文
11回目のお知らせを表示false実行されない
22回目のお知らせを表示false実行されない
33回目のお知らせを表示false実行されない
44回目のお知らせを表示false実行されない
55回目のお知らせを表示true実行される
6以降実行されない--

このように、5回目でbreak文が実行された時点で、6回目以降の処理は行われません。

break文がない場合との違い

もしこのプログラムにbreak文がなければ、for文は条件 i <= 10 がfalseになるまで続くので、1回目から10回目まで全部表示されます。

つまり、break文を入れることで、本来の終了条件とは別に、途中終了のルールを追加できるのです。

比較表

状態ループの終了タイミング
break文がない条件がfalseになったとき
break文があるbreak文が実行されたとき

ここがbreak文のとても大切なポイントです。

break文は「ループを抜ける」命令

break文を見たときは、「ただ終わる」のではなく、そのループを抜けるという感覚でとらえると理解しやすいです。

たとえば今回のSample9.javaでは、for文の中でbreak文が実行されると、そのfor文の外側へ処理が移ります。
そのため、breakのあとにある

System.out.println("お知らせの表示を終了しました。");

が実行されます。

つまり流れとしては、

  1. for文の中で処理をしている
  2. 条件に合ったのでbreak文を実行する
  3. for文を抜ける
  4. ループの外の処理へ進む

ということです。

break文はif文と一緒に使うことが多い

break文は、単独で使うよりもif文と組み合わせることが多いです。
なぜなら、いつ抜けるかを条件で決めることが多いからです。

たとえば、次のような形が基本になります。

if(条件){
    break;
}

この形にすると、「この条件になったら終える」という意図がはっきり伝わります。

break文の流れを図で理解する

break文は流れの変化をともなうので、図にするととてもわかりやすいです。
記事に図を入れるなら、次のようなシンプルな構成が使いやすいです。

この図でいちばん伝えたいのは、break文が通常のくり返しの流れを途中で切り替えるという点です。

ふつうのループは、条件がfalseになるまで回り続けます。
でもbreak文があると、条件がまだtrueでも、その場で外へ出られます。

特に注目したいポイントは次のとおりです。

注目点意味
ループ中に条件判定がある途中で終了するか判断できる
breakで外へ出る以後のくり返しを行わない
ループ外の処理に進む完全に停止するのではなく、次の処理へ移る

ネストしたループでのbreak文

for文などをネストしている場合、内側のループでbreak文を使うこともあります。
このとき注意したいのは、break文が抜けるのは、いちばん内側のループだけということです。

たとえば、for文の中にfor文がある場合、内側のfor文でbreakを実行すると、内側のfor文は終わりますが、外側のfor文までは終わりません。

イメージ表

場所break文で抜ける範囲
1重のループそのループを抜ける
2重ループの内側内側のループだけを抜ける
2重ループの外側外側のループを抜ける

この点は最初のうちは少し混乱しやすいですが、「break文は自分が入っているいちばん近いループを終わらせる」と考えると整理しやすいです。

break文が向いている場面

break文は、次のような場面でとても便利です。

場面使い方のイメージ
探索処理目的のものが見つかったら終える
入力チェック条件を満たしたらループを抜ける
メニュー処理終了が選ばれたら抜ける
異常検知エラーを見つけたら処理を打ち切る

このように、break文は「もう続ける必要がない」ときに使うと、とても自然です。

break文を使うときの注意点

break文は便利ですが、使いすぎると流れが見えにくくなることもあります。
そのため、「ここで抜ける理由がはっきりしているか」を意識して使うことが大切です。

注意したい点

注意点内容
どこで抜けるか分かりにくい条件を明確に書くことが大切
多用すると流れを追いにくい本当に途中終了が必要な場面で使う
ネストで混乱しやすいどのループを抜けるのか意識する

特に初心者のうちは、if文の条件とbreak文の位置をセットで見るようにすると理解しやすくなります。

break文があると処理はどう変わるのか

ループ文だけでは、「条件がfalseになるまで続ける」という流れが基本でした。
しかしbreak文が加わることで、そこに「必要なら途中で終える」という選択肢が生まれます。

これによって、プログラムはより実際の考え方に近づきます。
たとえば、「10回まで試すけれど、途中で見つかったらそこで終わる」といった自然な処理が書けるようになります。

これは、実用的なプログラムを書くうえでとても大切な考え方です。

break文を学ぶ意味

break文を理解すると、繰り返し処理をただ最後まで実行するだけでなく、状況に応じて途中で止めるという柔軟な制御ができるようになります。

今回の内容では、break文は

  • ループを強制的に終了する
  • 実行された時点でブロックから抜ける
  • if文と組み合わせて使うことが多い
  • ネストしているときは内側のループから抜ける

という点が大切でした。

この考え方を身につけると、検索処理、入力処理、メニュー処理など、実際のプログラムでよく使う流れを自然に書けるようになります。