他のプログラミング言語と同様に、 Java ではネストされたループが可能です。 1 つのループを別のループの中に配置すると、ネストされたループを形成できます。

 

ネストされたループは、for ループをネストした while ループ、または while ループをネストした do-while ループにすることができます。つまり、さまざまなタイプのループを外部ループまたは内部ループとして使用できます。

プログラムがネストされたループに遭遇すると、外側のループのループ条件が許せば、外側のループのループ本体が実行され、内側のループは外側のループのループ本体によって実行されます。内側のループのみが必要となります。繰り返される独自のループ本体を実行するだけです。

内側のループの実行が終了し、外側のループのループ本体の実行が終了すると、再度外側のループのループ条件を計算し、再び外側のループのループ本体の実行を開始するかどうかを決定する。

上記の解析によれば、外側のループのループ数をn、内側のループのループ数をmとすると、実際には内側のループのループ本体をn×m回実行する必要がある。

図 1 から、ネストされたループは、内側のループを外側のループと見なすループ本体です。内側のループのループ条件が false の場合にのみ、内側のループが完全に飛び出し、外側のループの現在のループを終了して次のループを開始できます。以下は、入れ子ループを使用して九九を出力する例です。

 public static void main(String[] args) {
    // 外側のループ
    for (int i = 1; i <= 9; i++) {
        // 内側のループ
        for (int j = 1; j <= i; j++) {
            System.out.print(j + "*" + i + "=" + j * i + "\t");
        }
        System.out.println();
    }
} 

上記のプログラムを実行すると、次の結果が表示されます。

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

上記の実行結果からわかるように、ネストされたループに入るとき、ループ変数 i は 1 から始まり、その後外側のループに入ります。外側のループに入ると、内側のループは i を値 0 の通常の変数として扱います。外側のループの現在のサイクルでは、内側のループは通常のループです。

実際、ネストされたループは 2 レベルのネストだけでなく、3 レベルのネスト、4 レベルのネストにすることもできます。ループがどのようにネストされているかに関係なく、内側のループは常に外側のループのループ本体として扱うことができます。ループの違いは、ループ本体に繰り返し実行する必要があるコードが含まれていることです。

マスターする必要があり、面接で頻繁に遭遇するバブル ソートについては、配列の使用法をすでに理解している場合は、「 Java バブル ソート」セクションを参照してください。

 

「 Java によるループのネスト」についてわかりやすく解説!絶対に観るべきベスト2動画

No.57 ネストクラスの具体例
【Java超入門コース】11.繰り返し|同じ処理を何度も実行できます【プログラミング初心者向け入門講座】
Share via
Copy link