[Java] for文の入れ子、ネスト構造について解説 | nested loops

for文にfor文が重なるfor文の入れ子、ネスト構造について整理。

Javaのネスト構造の実際のコードや、実行時の流れについて解説する。


for文の実行の順番

まずは単体のfor文についての復習。

単体のfor文では、以下の順番で実行される。

  1. 初期化式
  2. 条件式
  3. for文の中の処理
  4. 変化式



詳しくはこちらで整理した。


入れ子にしたfor文の例

次にネスト構造のfor文を見ていく。

まずは実際のプログラムを見てみる。

public class Main{
    public static void main(String[] args){
    
        for(int i = 0; i < 3; i++){
        System.out.println(i);
        
            for(int j = 0; j < 3; j++){
                System.out.println("★"+j);
             }
             
        }   
    }
}


星がついている数字が、2つ目のfor文で出力された数字となる。

//出力結果
0
★0
★1
★2
1
★0
★1
★2
2
★0
★1
★2


for文が入れ子の場合の実行の順番は?


実行の順番を詳しく説明すると、下記のような形になる。

  1. 1-1でカウンター変数を宣言、初期化
  2. 1-2で条件チェック
  3. 1-3で中の処理を実行 (すなわち二つ目のfor文を実行)
    1. 2-1で2つ目のfor文のカウンター変数を宣言、初期化
    2. 2-2で条件チェック
    3. 2-3で2つ目のfor文の中の処理を実行
    4. 2-4で変化式で2つ目のfor文のカウンター変数を操作。2-2の条件チェックへ戻る
    5. 2-2の条件がfalseになったら1-4へ
  4. 1-4で1つ目のfor文のカウンター変数を操作。1-2へ戻る
  5. 1-2の条件がfalseになったら、終了。


配列と繰り返し処理についての関連記事

入れ子のfor文のネスト構造は、多次元配列とセットで使われることも多い。

下記に、配列と繰り返し処理についての関連記事をまとめた。


全体像を把握する

下記にJavaやwebアプリケーションについての記事をまとめた。


[st-card myclass=”” id=3431 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]


コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。


[st-card myclass=”” id=4587 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]