Javaのラベル付きcontinue文をやさしく解説!ネストされたループを自在にコントロールしよう

こんにちは。ゆうせいです。

Javaで複数のループを扱っていると、「この条件のときは外側のループに飛ばしたいな…」と思うこと、ありませんか?

そんなときに便利なのが、ラベル付きのcontinue文です!

「continueにラベルって何?」という方も心配いりません。今回は新人エンジニアの方向けに、使い方・仕組み・注意点までしっかり説明していきます!


ラベル付きcontinueとは何か?

普通のcontinue

まずは基本からおさらいです。

Javaのcontinue文は、ループ内の現在の繰り返しをスキップし、次の繰り返しに進むための命令です。

for (int i = 0; i < 5; i++) {
    if (i == 2) continue;
    System.out.println("i = " + i);
}

このコードでは、i == 2 のときにcontinueが実行され、「i = 2」の出力はスキップされます。


ラベル付きのcontinue

今度は、ループの中にさらにループがあるネスト構造を見てみましょう。普通のcontinue内側のループにしか作用しませんが、ラベルをつけることで外側のループを制御することができます。


Javaのラベル付きcontinueの基本構文

label名:
for (初期化; 条件; 更新) {
    for (...) {
        if (条件) {
            continue label名;
        }
    }
}

例で見てみましょう。

outer:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (j == 1) {
            continue outer;
        }
        System.out.println("i = " + i + ", j = " + j);
    }
}


実行結果を確認!

出力される内容:

i = 0, j = 0
i = 1, j = 0
i = 2, j = 0

どうしてこうなるのかというと:

  • j == 1 になると continue outer; が実行されます。
  • これは外側のforループの次の反復へジャンプするという意味になります。
  • つまり、内側のループを完全にスキップして、次のi++へ飛んでいます。

例えで理解しよう!

学校のクラスごとに机を回って課題をチェックしている場面を想像してみてください。

  • 外側のループ:クラスごとの訪問(i
  • 内側のループ:そのクラスの生徒ごとのチェック(j

ある条件(生徒が問題を起こしたなど)になったら、そのクラスの生徒のチェックをすべてスキップして、次のクラスへ移動する。それがラベル付きcontinueです。


ラベル付きcontinueのメリット・デメリット

メリット

  • ネストされたループを明確に制御できる
  • 特定条件時に一気に外側ループに進める
  • 可読性が向上する場面もある

デメリット

  • ラベルの使いすぎでコードが読みにくくなることも
  • ラベル名の管理が面倒になることもある
  • 初学者には理解しにくい場合も

よくあるミスと注意点

  1. ラベルの位置に注意!
    → ラベルはfor文などのループ構造の直前につける必要があります。
  2. ラベル名を間違えるとコンパイルエラー!
    → Javaはラベルに厳密です。一文字でも違えば認識されません。
  3. 複雑すぎるロジックは避けよう!
    → ラベルを使えば強力ですが、ロジックが複雑になりすぎる場合は、関数に分けるなどの設計を検討すべきです。

ラベル付きcontinueとbreakの比較表

対象動作の内容
continue;現在のループ今のループの次の反復へ進む
continue ラベル;指定したループ指定したループの次の反復へ進む
break;現在のループ今のループを完全に抜ける
break ラベル;指定したループ指定したループを完全に抜ける

まとめ:ラベル付きcontinueは道具。使い方を見極めよう

ラベル付きのcontinue文は、複雑なループ処理を効率化する強力な道具です。特に2重以上のループ構造の中で「特定の条件を満たしたら外側にジャンプしたい」ときに役立ちます。

ただし、使いすぎると可読性が下がるので、「本当に必要なときだけ使う」のがポイントです。


今後の学習の指針

以下のステップで、ラベル付きcontinueをさらに活用できるようになりましょう。

  • 他のラベル付き文(breakなど)との違いを練習問題で確認
  • 複数のネスト構造でどのように動くかトレースしてみる
  • ラベルを使わない代替手段(例えばreturnやフラグ管理)との違いを考察

しっかりと理解し、現場で「使いこなせるエンジニア」を目指しましょう!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。