Powered by SmartDoc

二重ループ

ループの中にループがあるのが二重ループです。表形式のデータを扱いと時などに使います。

5回のループの中に5回のループ(合計25回)が入っている場合のフローチャートを示します。

二重ループ

二重ループはfor文やwhile文を使って表現します。

二重ループ(while文)
class DoubleLoopW01 {
  public static void main(String args[]){
    // カウンタ
    int i, j;
    // 外側のループ
    i = 1;
    while(i <= 5){
      j = 1;
      // 内側のループ
      while(j <= 5){
	System.out.print("(" + i + "," + j + ")\t");
	j = j + 1;
      }
      System.out.println();
      i = i + 1;
    }
  }
}

内側のループの回数を外側のループの値で制御する

内側のループの回数を外側のループの値で制御できます。

内側のループを外側のループのカウンターで制御
class DoubleLoopW02 {
    public static void main(String args[]){
	// カウンタ
	int i, j;
	// 外側のループ
	i = 1;
	while(i <= 5){
	    j = 1;
	    // 内側のループ
	    while(j <= i){
		System.out.print("(" + i + "," + j + ")\t");
		j = j + 1;
	    }
	    System.out.println();
	    i = i + 1;
	}
    }
}

四角形を作る

二重ループを使うと文字で擬似的な図形を表示でる。

次のプログラムは文字*を使って5×5の四角形を表示するものです。

四角形を描く
class Shikakukei {
    public static void main(String args[]){
	// カウンタ
	int i, j;
	// 外側のループ
	for(i = 1; i <= 5; i++){
	    // 内側のループ
	    for(j = 1; j <= 5; j++){
		System.out.print("■");
	    }
	    System.out.println();
	}
    }
}

演習

次の各プログラムを作りなさい。

  1. 二重ループの例題をfor文で書き換える。
  2. 九九の表を作る(Kuku.java)。
  3. 次の三角形を出力する(Snakaku1.java)。
    ▲
    ▲▲
    ▲▲▲
    ▲▲▲▲
    ▲▲▲▲▲
    
  4. 次の三角形を出力する(Snakaku2.java)。
    ▼▼▼▼▼
    ▼▼▼▼
    ▼▼▼
    ▼▼
    ▼
    
  5. 次の三角形を出力する(Sankaku3.java)。(早く終わった人向け)
    ▲
    ▲▲
    ▲ ▲
    ▲  ▲
    ▲▲▲▲▲