
Java道|break文のしくみと使い方
必要なところで、きっぱり止める。
break文を覚えると、繰り返し処理を最後まで走らせず、状況に合わせて自然に抜けられる。
これまで、for文、while文、do~while文を使って、同じ処理を何度もくり返す方法を学んできました。
繰り返し処理はとても便利です。
決まった回数だけ表示する、条件が成り立つ間だけ続ける、まず1回実行してから続けるか判断するなど、いろいろな流れを書けるようになりました。
ただ、実際のプログラムでは、いつも最後まで繰り返せばよいとは限りません。
たとえば、10回まで確認する予定でも、5回目で目的のものが見つかったら、それ以上続ける必要はありません。
ある条件に達したら、その時点で処理を終えたほうが自然な場合もあります。
ユーザーが中止を選んだなら、すぐにループを抜けたいこともあります。
このような場面で使うのが break文 です。
break文は、ループの途中で実行されると、そのループをその場で終了し、ループの外側へ処理を移します。もともとの繰り返し条件がまだ true であっても、break文が実行された時点で、繰り返しを打ち切れるのが大きな特徴です。この記事では、指定内容に沿って Sample9.java のみを使い、break文の基本、ループを抜ける流れ、break文がない場合との違い、ネストしたループでの注意点までを、鬼滅の刃風の世界観にたとえながら整理します。
鬼滅の刃風にたとえると、break文は「任務を続ける必要がなくなった瞬間に、隊長が撤収の合図を出す札」です。
本来は10か所を巡回する予定でも、目的の鬼の痕跡を5か所目で見つけたなら、それ以上巡回する必要はありません。
その場で撤収し、次の行動へ移る。
この「途中で切り上げる」動きをJavaで表すのが break文 です。
break文とは何か
break文は、現在実行しているループやswitch文などを、その場で終了させるための文です。
書き方はとてもシンプルです。
break;この1文が実行されると、break文が含まれている繰り返し処理を抜けます。
たとえば、for文の中で break文 が実行されると、そのfor文はそこで終了します。
その後は、for文の外側にある次の処理へ進みます。
| 文 | 役割 |
|---|---|
| break; | 実行中のループを途中で終了する |
| for文の条件式 | 通常の繰り返し継続を判断する |
| if文 | breakするかどうかの条件判定によく使う |
ここで大切なのは、break文は「プログラム全体を止める文」ではないということです。
break文は、ループを抜ける文です。
ループを抜けたあとは、ループの外側にある処理へ進みます。
鬼滅の刃風にたとえると、break文は「任務そのものを放棄する」のではなく、「今行っている巡回を終えて、次の指令へ移る」合図です。
break文が必要になる場面
繰り返し処理は、通常は条件が false になるまで続きます。
たとえば、次のようなfor文なら、何も途中終了がなければ 1 から 10 まで処理が続きます。
for(int i = 1; i <= 10; i++){
処理;
}しかし、実際には途中で終わらせたい場面があります。
| 場面 | break文が役立つ理由 |
|---|---|
| 探していた値が見つかった | それ以上探し続ける必要がない |
| 目的の回数に達した | 予定より早く切り上げたい |
| 異常な状態を見つけた | その場で処理を打ち切りたい |
| ユーザーが中止を選んだ | すぐにループを抜けたい |
| 条件を満たす結果が出た | 続けるより抜けたほうが自然 |
break文は、「最後まで続けるより、途中で終えたほうが自然な処理」に向いています。
鬼滅の刃風にたとえると、10回の巡回予定があっても、5回目で目的の合図を見つけたなら、残りの巡回は不要です。
そこで break文 によって、ループを抜けます。
break文の基本イメージ
break文は、if文と組み合わせて使うことが多いです。
なぜなら、途中で抜けるかどうかは、条件によって判断することが多いからです。
基本の形は次のようになります。
for(繰り返しの設定){
処理;
if(途中でやめたい条件){
break;
}
}↓クリックすると拡大表示されます。

この流れでは、ふだんはループを続けます。
しかし、if文の条件が true になったときだけ break文 が実行され、ループを抜けます。
| 部分 | 役割 |
|---|---|
| for文 | 繰り返し処理を行う |
| if文 | 途中で終える条件を調べる |
| break文 | 条件を満たしたらループを抜ける |
break文は、条件に応じて繰り返しの流れを変えるための道具です。
図: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回目まで表示する流れになっています。
for(int i = 1; i <= 10; i++)ただし、ループの中で次のif文を使っています。
if(i == stop){
break;
}i が stop と等しくなったとき、break文 が実行されます。
その瞬間にfor文を抜けるため、残りの回数は表示されません。
鬼滅の刃風にたとえると、1回目から10回目まで任務連絡を送る予定でした。
しかし、隊長が指定した回数に達した時点で「ここで連絡終了」と合図を出します。
その合図が break文 です。
Sample9.javaの処理の流れ
Sample9.java の処理は、次のように進みます。
| 順番 | 処理内容 |
|---|---|
| 1 | 何回目で終了するかを入力してもらう |
| 2 | 入力された文字列を整数に変換して stop に入れる |
| 3 | for文で i を 1 から 10 まで進める |
| 4 | 毎回、任務連絡を表示する |
| 5 | i == stop なら break文 を実行する |
| 6 | for文を抜けて、終了メッセージを表示する |
5 を入力した場合、stop の値は 5 です。
int stop = 5;そのため、i が 5 になったときに、次の条件が true になります。
i == stopそして、break文 が実行されます。
break;この時点で for文 は終了します。
i が 6、7、8、9、10 になる処理は行われません。
5を入力した場合の動き
5 を入力した場合の動きを表で整理すると、次のようになります。
| i の値 | 表示される内容 | i == stop | break文 |
|---|---|---|---|
| 1 | 1回目の任務連絡を表示 | false | 実行されない |
| 2 | 2回目の任務連絡を表示 | false | 実行されない |
| 3 | 3回目の任務連絡を表示 | false | 実行されない |
| 4 | 4回目の任務連絡を表示 | false | 実行されない |
| 5 | 5回目の任務連絡を表示 | true | 実行される |
| 6以降 | 表示されない | 確認されない | 実行されない |
この表から分かるように、5回目で break文 が実行された時点で、for文の繰り返しは終わります。
つまり、for文の条件 i <= 10 だけを見ると、6回目以降も続けられるはずです。
しかし、break文 が実行されたため、その先の繰り返しには進みません。
ここが break文 の重要なところです。
break文がない場合との違い
もし Sample9.java に break文 がなければ、for文は i <= 10 が false になるまで続きます。
つまり、1回目から10回目まで全部表示されます。
| 状態 | ループの終了タイミング |
|---|---|
| break文がない | for文の条件が false になったとき |
| break文がある | break文が実行されたとき |
break文がない場合は、for文の終了条件だけがループを止める基準です。
for(int i = 1; i <= 10; i++)この場合、i が 11 になり、i <= 10 が false になるまで続きます。
一方、break文がある場合は、途中終了のルールを追加できます。
if(i == stop){
break;
}この条件が true になった瞬間に、ループを抜けます。
鬼滅の刃風にたとえると、break文がない場合は、予定どおり10か所すべてを巡回します。
break文がある場合は、目的の合図を見つけた時点で巡回を切り上げます。
break文はループを抜ける命令
break文を見たときは、「ただ終わる」ではなく、「今いるループを抜ける」と考えると理解しやすいです。
Sample9.java では、break文 がfor文の中にあります。
for(int i = 1; i <= 10; i++){
System.out.println(i + "回目の任務連絡を表示しています。");
if(i == stop){
break;
}
}この中で break文 が実行されると、for文の外へ出ます。
その後、次の文が実行されます。
System.out.println("任務連絡の表示を終了しました。");つまり、処理の流れは次のようになります。
| 順番 | 流れ |
|---|---|
| 1 | for文の中で繰り返し処理を行う |
| 2 | i == stop が true になる |
| 3 | break文 を実行する |
| 4 | for文を抜ける |
| 5 | ループ外の終了メッセージへ進む |
break文は、プログラムを完全に停止する文ではありません。
今いるループを抜けて、その外の処理へ進める文です。
break文はif文と一緒に使うことが多い
break文は、単独で突然書くよりも、if文と組み合わせて使うことが多いです。
なぜなら、「いつ抜けるか」を条件で決めることが多いからです。
基本の形は次の通りです。
if(条件){
break;
}この形にすると、「この条件になったらループを終える」という意図がはっきりします。
Sample9.java では、次の条件を使っています。
if(i == stop){
break;
}これは、i が stop と等しくなったらループを抜ける、という意味です。
| 条件 | break文の動き |
|---|---|
| i == stop が false | ループを続ける |
| i == stop が true | break文を実行してループを抜ける |
このように、break文は「途中終了の条件」とセットで読むと分かりやすくなります。
図:break文がある場合とない場合の違い
↓クリックすると拡大表示されます。

この図が示していること
この図では、break文がない場合とある場合の違いを比較しています。
左側では、break文がないため、for文は i <= 10 が false になるまで続きます。
つまり、1回目から10回目まで実行されます。
右側では、stop が 5 のとき、i == stop が true になったタイミングで break文 が実行されます。
そのため、5回目でループを抜け、6回目以降は実行されません。
ここから分かることは、break文を使うと、本来のループ条件とは別に、途中終了のルールを作れるということです。
break文が実行されたあとの流れ
break文が実行されると、ループの中の処理はそこで終わります。
ただし、ループの外側にある処理は続きます。
Sample9.java では、break文 のあと、次の文へ進みます。
System.out.println("任務連絡の表示を終了しました。");この文はfor文の外にあります。
そのため、stop が 5 でも、stop が 3 でも、break文でループを抜けたあとに実行されます。
| 文の位置 | 実行されるタイミング |
|---|---|
| for文の中 | ループ中に実行される |
| break文 | 条件を満たしたときにループを抜ける |
| for文の外 | ループ終了後に実行される |
このように、break文は「処理を全部止める」のではなく、「今いるループから外へ出る」文です。
ネストしたループでのbreak文
for文などをネストしている場合、内側のループで break文 を使うことがあります。
このとき注意したいのは、break文が抜けるのは、基本的にいちばん近いループだけという点です。
たとえば、for文の中にfor文がある場合を考えます。
for(int row = 1; row <= 3; row++){
for(int col = 1; col <= 3; col++){
if(col == 2){
break;
}
}
}この場合、break文 は内側のfor文の中にあります。
そのため、break文 が実行されると、内側のfor文だけを抜けます。
外側のfor文まで終わるわけではありません。
| break文の場所 | 抜ける範囲 |
|---|---|
| 1重のループの中 | そのループを抜ける |
| 2重ループの内側 | 内側のループだけを抜ける |
| 2重ループの外側 | 外側のループを抜ける |
この点は、最初のうちは少し混乱しやすいところです。
「break文は、自分が入っているいちばん近いループを終わらせる」と考えると整理しやすくなります。
鬼滅の刃風にたとえると、内側のループは「1つの訓練場の中での型確認」です。
そこで break文 が出ると、その訓練場の確認は終わります。
しかし、外側の「次の訓練場へ進む流れ」までは終わりません。
ネストしたループで混乱しないための見方
ネストしたループで break文 を読むときは、次の点を確認すると分かりやすいです。
| 見るポイント | 確認すること |
|---|---|
| break文がどこにあるか | 内側か外側か |
| どの中かっこに囲まれているか | 抜けるループを見つける |
| いちばん近いループはどれか | break文で終了する範囲 |
| break後にどこへ進むか | ループ外の次の処理 |
特に、中かっこの位置が大切です。
for(int row = 1; row <= 3; row++){
for(int col = 1; col <= 3; col++){
if(col == 2){
break;
}
}
System.out.println("次の訓練場へ進みます。");
}この例では、break文 は内側のfor文を抜けます。
そのあと、外側のfor文の中にある次の処理へ進みます。
つまり、内側のループだけが終わり、外側の繰り返しは続きます。
break文が向いている場面
break文は、次のような場面で便利です。
| 場面 | 使い方のイメージ |
|---|---|
| 探索処理 | 目的のものが見つかったら終える |
| 入力チェック | 条件を満たしたらループを抜ける |
| メニュー処理 | 終了が選ばれたら抜ける |
| 異常検知 | エラーを見つけたら処理を打ち切る |
| 回数制限つき確認 | 途中で条件に達したら切り上げる |
break文は、「もう続ける必要がない」と判断できる場面で使うと自然です。
たとえば、目的の値を探しているなら、見つかったあとも探し続ける必要はありません。
メニュー処理なら、ユーザーが終了を選んだ時点で、ループを抜けるのが自然です。
鬼滅の刃風にたとえると、break文は「目的を達成したので、これ以上巡回しない」という判断です。
見つけたら終える。
異常があれば止める。
終了の合図があれば抜ける。
このような実用的な制御に向いています。
break文を使うときの注意点
break文は便利ですが、使い方には注意も必要です。
| 注意点 | 内容 |
|---|---|
| どこで抜けるか分かりにくくなることがある | 条件を明確に書く |
| 多用すると流れを追いにくい | 本当に途中終了が必要な場面で使う |
| ネストで混乱しやすい | どのループを抜けるのか意識する |
| break後の処理を確認する | ループ外のどこへ進むかを見る |
特に初心者のうちは、if文の条件と break文 の位置をセットで見ると理解しやすいです。
if(i == stop){
break;
}この形なら、i が stop と等しくなったらループを抜ける、という意図が読み取りやすくなります。
一方で、break文があちこちに出てくると、処理の流れが追いにくくなることがあります。
そのため、break文は「ここで抜ける理由がはっきりしている」ときに使うのがよいです。
break文があると処理はどう変わるのか
ループ文だけの場合、基本の流れは「条件が false になるまで続ける」です。
for文なら、条件式が false になったときに終わります。
while文なら、条件が false になったときに終わります。
do~while文なら、処理後に条件を確認し、false なら終わります。
そこに break文 が加わると、もう1つの終了方法が生まれます。
| 終了方法 | 内容 |
|---|---|
| 条件が false になる | 通常のループ終了 |
| break文が実行される | 途中終了 |
break文を使うと、ループの終了条件とは別に、「この条件になったらすぐ抜ける」という道を作れます。
これは、実用的なプログラムを書くうえでとても大切です。
たとえば、10回まで探す予定でも、3回目で見つかったらそこで終わる。
100件まで確認する予定でも、異常が見つかったらすぐ止める。
このような処理を自然に書けるようになります。
break文を読むときのポイント
break文を読むときは、次の順番で確認すると分かりやすいです。
| 順番 | 見ること |
|---|---|
| 1 | どのループの中にあるか |
| 2 | どの条件でbreakするか |
| 3 | breakされたらどのループを抜けるか |
| 4 | ループを抜けたあと、次に何が実行されるか |
| 5 | breakしなかった場合はループがどう続くか |
Sample9.java なら、次のように整理できます。
| 見るポイント | 内容 |
|---|---|
| ループ | for文で i を 1 から 10 まで進める |
| break条件 | i == stop |
| 抜ける範囲 | for文を抜ける |
| 抜けた後 | 任務連絡の表示を終了しました。を表示 |
| breakしない場合 | 次の i へ進む |
この見方をすると、break文があるコードでも処理の流れを追いやすくなります。
break文を学ぶ意味
break文を理解すると、繰り返し処理を「最後まで必ず続けるもの」ではなく、「必要に応じて途中で終えられるもの」として扱えるようになります。
これは、Javaで実用的な処理を書くうえでとても重要です。
| break文でできること | 内容 |
|---|---|
| ループを強制的に終了する | 条件に達した時点で抜ける |
| 余計な処理を減らす | 目的達成後の繰り返しを避ける |
| 異常時に打ち切る | 安全に処理を止められる |
| メニュー終了に使える | 終了選択でループを抜けられる |
| 探索処理を自然に書ける | 見つかったらすぐ終われる |
break文で特に大切なのは、次の4つです。
| 大切なこと | 内容 |
|---|---|
| break文はループを抜ける | プログラム全体を止めるわけではない |
| if文と組み合わせることが多い | 抜ける条件を明確にできる |
| もとの条件が true でも抜けられる | 途中終了のルールを作れる |
| ネストでは近いループを抜ける | どのループを抜けるか意識する |
鬼滅の刃風にたとえると、break文は「任務中に目的を達したら、その巡回を切り上げる撤収の合図」です。
ただ続けるだけではなく、必要なところで止める。
この感覚が身につくと、for文、while文、do~while文をより柔軟に使えるようになります。
