3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ラベル java

Last updated at Posted at 2025-01-02

はじめに

インフラの分野でも、Iac化が進んで行くと考えています。そこで、ノウハウが体系だっているものが学び易いと考えて、Javaを学びはじめました。

今回は、ラベル (ab) の役割にフォーカスしました。

public class Main {
    public static void main(String[] args) {
        int total = 0;
        
        a: for (int i = 0; i < 5; i++) {  // 外側のループ
            b: for (int j = 0; j < 5; j++) {  // 内側のループ
                // i が偶数の場合、外側のループの次の反復にスキップ
                if (i % 2 == 0) continue a;  
                
                // j が 3 より大きい場合、内側のループを終了
                if (3 < j) break b; 
                
                // j を total に加算
                total += j;
            }
        }
        
        // total の値を出力
        System.out.println(total);
    }
}

ラベル(a, b)の意味と使い方

1. ラベル a の使用(continue a;

ラベル a は、外側のループ(i に関するループ)に対応しています。continue a; は、i が偶数の場合に、外側のループi のループ)の次の反復に進むことを意味します。

  • continue a; は、i が偶数(i % 2 == 0)の場合に、外側のループの次の反復を開始させるため、内側のループ(j のループ)はスキップされます。
  • これは、i が偶数のときには、内側のループを無駄に実行しないようにするためです。

2. ラベル b の使用(break b;

ラベル b は、内側のループ(j に関するループ)に対応しています。break b; は、j が 3 より大きくなった時に、内側のループj のループ)を終了させることを意味します。

  • if (3 < j) break b; は、j が 4 以上の値を取った場合に、内側のループを終了させるための命令です。これにより、j が 4 に到達する前に、内側のループを終了させます。

実行の流れ

  1. 外側のループ(i ループ) は、i = 0 から i = 4 まで実行されます。
  2. 内側のループ(j ループ) は、j = 0 から j = 4 まで実行されますが、i が偶数の場合は continue a; によってスキップされます。

実行結果の詳細

  • i = 0 のとき(偶数):

    • continue a; によって、内側のループがスキップされ、total は加算されません。
  • i = 1 のとき(奇数):

    • j = 0: total += 0;total = 0
    • j = 1: total += 1;total = 1
    • j = 2: total += 2;total = 3
    • j = 3: total += 3;total = 6
    • j = 4: break b; → 内側のループを終了。total の値は 6 になります。
  • i = 2 のとき(偶数):

    • continue a; によって内側のループがスキップされ、total は変わりません。
  • i = 3 のとき(奇数):

    • j = 0: total += 0;total = 6
    • j = 1: total += 1;total = 7
    • j = 2: total += 2;total = 9
    • j = 3: total += 3;total = 12
    • j = 4: break b; → 内側のループを終了。total の値は 12 になります。
  • i = 4 のとき(偶数):

    • continue a; によって内側のループがスキップされ、total は変わりません。

最終的な total の値

i = 1i = 3 のときに total に加算され、最終的な値は 12 になります。

実行結果

12

まとめ

  • ラベル付き continue (continue a;) は、外側のループ(i のループ)の次の反復に進むために使用されます。

    • 具体的には、i が偶数のときに内側のループをスキップするために使います。
  • ラベル付き break (break b;) は、内側のループ(j のループ)を終了させるために使用されます。

    • 具体的には、j が 4 に達したときに内側のループを終了させます。

ラベルを使うことで、特定のループを制御することができ、ネストされたループの中で柔軟に制御フローを管理することが可能となります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?