ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
break 文とは
break 文は、ループや switch 文の実行を途中で打ち切って外へ抜ける制御構文です。Java / C / C++ / JavaScript / Python など、多くの言語で同じキーワード break として用意されています。
基本構文
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // i == 5 でループを抜ける
}
System.out.println(i);
}
// 出力: 0 1 2 3 4
使える文
| 構文 | break の動き |
|---|---|
| for / for-each | ループを完全終了 |
| while / do-while | ループを完全終了 |
| switch | その case の実行を打ち切って switch を抜ける |
if 文の中だけに break を書くことはできず、必ずループ / switch の中に置く必要があります(if は単独では break の対象にならない)。
switch 文での break
switch 文では各 case の終わりに break を書かないと、次の case にも処理が流れ込みます(フォールスルー)。意図しない動作の原因になりやすいので注意。
switch (day) {
case "MON":
System.out.println("月曜");
break;
case "TUE":
System.out.println("火曜");
break;
case "SAT":
case "SUN":
System.out.println("週末"); // SAT も SUN も合流
break;
default:
System.out.println("その他");
}
多重ループと break
break は最も内側のループしか抜けません。外側まで抜けたい場合は次のいずれかを使います。
| 方法 | 言語 |
|---|---|
| ラベル付き break | Java / JavaScript |
| フラグ変数 | すべて |
| 関数 / メソッドに切り出して return | すべて |
| 例外を投げる(非推奨) | すべて |
ラベル付き break(Java / JavaScript)
outer:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (i * j > 20) {
break outer; // 外側のループまで抜ける
}
}
}
フラグ変数
boolean found = false;
for (int i = 0; i < n && !found; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] == target) {
found = true;
break;
}
}
}
continue との違い
| キーワード | 動作 |
|---|---|
| break | ループ自体を打ち切る(その後の周回は実行しない) |
| continue | 現在の周回だけスキップして次の周回へ |
for (int i = 0; i < 5; i++) {
if (i == 2) continue; // 2 だけ飛ばす → 0 1 3 4
System.out.println(i);
}
for (int i = 0; i < 5; i++) {
if (i == 2) break; // 2 で抜ける → 0 1
System.out.println(i);
}
break と return の使い分け
関数 / メソッドの途中で結果が決まったら即返したい場合は、ループから break するよりreturn のほうがすっきり書けることが多いです。
// break + フラグ版
boolean contains = false;
for (int x : arr) {
if (x == target) { contains = true; break; }
}
return contains;
// return 版(こちらが簡潔)
for (int x : arr) {
if (x == target) return true;
}
return false;
言語別の細かな違い
| 言語 | break の特徴 |
|---|---|
| Java | ラベル付き break label; あり。switch でフォールスルー回避に必要 |
| JavaScript | 同上。for ... in / for ... of でも使える |
| C / C++ | ラベル付きはなし。goto やフラグで代用 |
| Python | break あり。ラベルなし。for-else 構文と組合せ可(break しなければ else 実行) |
| Kotlin | ラベル付き break@outer |
| Go | ラベル付き break。switch でのフォールスルーは fallthrough を明示 |
無限ループからの脱出
while (true) のような無限ループでは、break で抜ける条件を中に書きます。
while (true) {
String line = reader.readLine();
if (line == null) break; // EOF
if (line.equals("exit")) break;
process(line);
}
よくある間違い
- if 単独で break — ループ / switch 外なのでコンパイルエラー
- switch の break 忘れ — 次の case にフォールスルーする
- ラベル名を間違える — ラベル付き break で別のラベル名を書くとコンパイルエラー
- break と return の混同 — メソッド全体を抜けるなら return、ループだけなら break
FAQ
Q: forEach(Java の Stream)で break したい
A: Stream.forEach では break できません。条件で打ち切るなら anyMatch / findFirst / 通常の for ループに切り替えます。
Q: Python の for-else って?
A: else 節はループがbreak せず最後まで回ったときに実行されます。「探索失敗時の処理」を書きやすい構文です。
Q: 例外で抜けてはダメ?
A: 性能・可読性ともに非推奨。例外は例外的な状況のためのものです。
関連
- 繰り返し制御文 — 親カテゴリ
- continue 文 — 周回スキップ
- return 文 — メソッド全体を抜ける
- switch 文 / case — フォールスルーと break
- for / while / do-while — ループ構文
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
- for文
- 拡張for文
- while文
- do while文
- continue文 (繰り返し制御文)
- break文
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?