Java | ラベル付きcontinue

Java Java
スポンサーリンク

ラベル付きcontinueは、多重ループの中で「内側のループを飛ばすだけじゃなく、外側のループの次の繰り返しへ進みたい」ときに使います。


ラベル付きcontinueが役立つ場面

1. ネストした検索処理で「条件が合わなければ外側へ」

例えば「商品リスト × 倉庫リスト」をチェックして、在庫が見つからなければ次の商品へ進みたい場合。

Outer:
for (String product : products) {
    for (String warehouse : warehouses) {
        if (!hasStock(product, warehouse)) {
            continue Outer; // 在庫がなければ次の商品へ
        }
        System.out.println(product + " found in " + warehouse);
    }
}
Java

👉 ポイント: 内側の倉庫チェックを全部飛ばして、次の商品へ進める。


2. 入力検証で「一つでも不正なら次のデータへ」

複数フィールドを持つレコードを検証し、1つでも不正ならそのレコード全体をスキップしたい場合。

Outer:
for (String[] record : records) {
    for (String field : record) {
        if (field == null || field.isEmpty()) {
            continue Outer; // 不正フィールドがあれば次のレコードへ
        }
    }
    System.out.println("Valid record: " + Arrays.toString(record));
}
Java

👉 ポイント: 内側のチェックで不正を見つけたら、そのレコード全体を飛ばす。


3. 二重ループで「条件に合わない組み合わせは外側ごとスキップ」

例えば「ユーザー × 権限リスト」をチェックして、禁止権限が見つかったらそのユーザー全体をスキップ。

Outer:
for (User user : users) {
    for (String role : user.getRoles()) {
        if (role.equals("BANNED")) {
            continue Outer; // 禁止権限があれば次のユーザーへ
        }
    }
    System.out.println("Active user: " + user.getName());
}
Java

👉 ポイント: 内側のループで「禁止条件」を見つけたら、そのユーザー全体を飛ばす。


まとめ

  • 普通のcontinue: 内側のループだけをスキップ。
  • ラベル付きcontinue: 外側のループへ直接ジャンプできる。
  • 使いどころ:
    • レコード検証で「1つでも不正なら全体スキップ」
    • ネストした検索で「条件が合わなければ次の外側要素へ」
    • 多重ループで「外側単位で処理を飛ばしたい」

👉 実務では「データ検証」「検索処理」「フィルタリング」でよく使われます。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました