2014年12月9日火曜日

配列が苦手な方へ

配列が苦手な方はとりあえず、以下の問題に答えられるようになっておけばOKです。

ポイントとしては『二次元配列とは配列の中に配列が入っている』ということです。




【問題】

二次元配列を使用して以下のように数字を出力せよ

ただし、初期化子を使って配列を初期化しないこと

表示時にはfor文と拡張for文と2種類使うこと




【出力結果】

1
1 2
1 2 3

1
1 2
1 2 3









【回答例】


class ArrayTest {
 
  public static void main(String[] args) {
   
    //二次元配列は配列の中に配列を格納
   
    //一次元目のみの要素を確保
    //(二次元目は後から動的確保)
    int[][] a = new int[3][];
   
    //0番目の要素の二次元目を動的確保
    //一次元目の要素には一次元配列を格納
    a[0] = new int[1];
    a[0][0] = 1;
   
    //1番目の要素の二次元目を動的確保
    a[1] = new int[2];
    a[1][0] = 1;
    a[1][1] = 2;
   
    //2番目の要素の二次元目を動的確保
    a[2] = new int[3];
    a[2][0] = 1;
    a[2][1] = 2;
    a[2][2] = 3;
   
   
   
    //for文でインデックスを使って表示
    for (int i = 0; i < a.length; i++) {
      for (int j = 0; j < a[i].length; j++) {
        System.out.printf("%d ", a[i][j]);
      }
      System.out.println();
    }
   
    System.out.println();
   
   
    //拡張for文で各要素を取得しながら表示
    //一次元目は配列を取得
    for (int[] t : a) {
      //二次元目でintの値を取得
      for (int num : t) {
        System.out.printf("%d ", num);
      }
      System.out.println();
    }
  }
}

0 件のコメント:

コメントを投稿