両方とも「ループの流れを制御する」ための命令ですが、役割が違います。初心者が混乱しやすいポイントなので、実務的な観点も交えて整理します。
break の特徴
- 役割: ループを「完全に終了」する。
- イメージ: 「もうこのループは終わり!外へ出る」。
- 使いどころ:
- 条件を満たしたら探索終了(検索処理など)。
- エラーや異常値を見つけたら処理を打ち切る。
- 無限ループから抜ける出口。
例:検索処理で最初に見つかったら終了
String[] users = {"Alice", "Bob", "Carol"};
String target = "Bob";
for (String user : users) {
if (user.equals(target)) {
System.out.println("Found: " + user);
break; // 見つかったらループ終了
}
}
Javacontinue の特徴
- 役割: 「その回の残り処理をスキップ」して次の繰り返しへ。
- イメージ: 「この回はパス!次へ進む」。
- 使いどころ:
- 不要データを飛ばして処理を続けたい。
- 条件に合わないものを無視して効率化。
- 入力チェックやフィルタリング。
例:不正値をスキップして合計
int[] numbers = {10, -1, 5, -3, 8};
int sum = 0;
for (int n : numbers) {
if (n < 0) {
continue; // 負の数はスキップ
}
sum += n;
}
System.out.println("Sum = " + sum);
Java実務での使い分け指針
| 状況 | 適切な選択 | 理由 |
|---|---|---|
| 検索処理(最初に見つかったら終了) | break | 無駄な探索を止める |
| 入力検証(不正値は飛ばして処理続行) | continue | 他のデータは処理したい |
| エラー検出(致命的なら処理打ち切り) | break | 安全のため即終了 |
| フィルタリング(条件に合わないものを除外) | continue | 必要なものだけ処理 |
まとめ
break→ ループ自体を終了continue→ 今の回だけ飛ばして次へ- 実務では「処理を止めたいか」「処理を続けたいか」で選ぶ。
👉 よくあるパターンは「検索ならbreak」「フィルタリングならcontinue」。


