ラベル(Label)

【Java】ラベル 基礎知識

ラベルとは

ラベルはソースコード内に記述できる目印で、 ラベルを指定すると、continue文やbreak文で特定の箇所に移動することができます。 主に繰り返しのネスティング処理で利用します。

ラベルについて

ラベルは以下の箇所で使用できます。

  • コードブロック
  • if文やswitch文
  • 代入
  • return文
  • tryブロック
  • throw文

ラベルの構文

(ラベル構文例)

labelName:
for (initialization; condition; increment) {
    // ループの本体
}

※「labelName」に任意の有効な識別子を指定します。

ラベルサンプル

実際にラベルを使用したサンプルを見てみましょう。

ネストされたループからの脱出

複数のループがネストされている場合、特定のループから脱出したい場合があります。
ラベル付きbreak文を使用すると、これを簡単に実現できます。

(例)i == 1かつ j == 1の時に外側のループ(outerLoop)から完全に脱出する

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

特定のループの次の反復へのスキップ

continue文とラベルを組み合わせることで、ネストされたループの特定の反復をスキップすることができます。

(例)i == 1かつ j == 1の時に外側のループの次の反復にスキップする

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

ラベル補足

  • ラベルはfor文やwhile文だけでなく、ほとんどのJavaステートメントに付けることができます。
  • ラベル付きステートメントは過度に使用すると、コードの可読性を損なう可能性があります。必要な場合にのみ使用することをお勧めします。
  • ローカル変数宣言文にはラベルを付けることができません。

コメント

タイトルとURLをコピーしました