Java のbreakとcontinue
1. break ステートメント
break ステートメントについては、このチュートリアルの前のチャプターで、switch 文から「脱出(ブレイク)」するために使用されるのを見ましたね。
この break ステートメントは、ループ(繰り返し処理)から抜け出すためにも使用できます。
以下の例では、変数 i が 4 に等しくなったときにループを停止させます。
1.1 break のコード例
for (int i = 0; i < 10; i++) {
if (i == 4) {
break; // iが4になるとループを強制終了
}
System.out.println(i);
}2. continue ステートメント
continue ステートメントは、ループ内で特定の条件が発生した際、その回の反復(イテレーション)を1回分中断し、ループ内の次の反復へと進みます。
以下の例では、値が 4 の場合だけ処理をスキップします。
2.1 continue のコード例
for (int i = 0; i < 10; i++) {
if (i == 4) {
continue; // iが4の時はこれ以降の処理をスキップして次のループへ
}
System.out.println(i);
}3. 覚えておくと便利なポイント
- break = ループを完全に停止させる。
- continue = 今回のラウンドをスキップして、ループ自体は継続する。
4. break と continue の組み合わせ
break と continue を組み合わせて使用することも可能です。
以下の例では、2 の出力をスキップし、4 に到達した時点でループを停止させます。
4.1 複合的な制御のコード例
for (int i = 0; i < 6; i++) {
if (i == 2) {
continue; // 2をスキップ
}
if (i == 4) {
break; // 4でループを終了
}
System.out.println(i);
}5. while ループにおける break と continue
while ループの中でも break と continue を使用することができます。
5.1 while ループでの break 例
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
if (i == 4) {
break; // iが4に達したらループを抜ける
}
}5.2 while ループでの continue 例
int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue; // iが4の時はスキップ。無限ループを避けるためインクリメントを忘れずに
}
System.out.println(i);
i++;
}6. 実践的なユースケース
数値のリストを処理する際、「負の値はスキップするが、ゼロが見つかったら完全に処理を停止する」というシナリオを想定してみましょう。
6.1 実務に近いフィルタリング処理の例
int[] numbers = {3, -1, 7, 0, 9};
for (int n : numbers) {
if (n < 0) {
continue; // 負の数は処理せず次の要素へ
}
if (n == 0) {
break; // ゼロが見つかったらループを終了
}
System.out.println(n);
}