Java 速習チュートリアル

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 の組み合わせ

breakcontinue を組み合わせて使用することも可能です。

以下の例では、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 ループの中でも breakcontinue を使用することができます。

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);
}