第八章 
 〜基本編〜
 二次元配列
   一次元配列の次は、二次元配列について説明するです〜
  二次元配列というのは、縦と横からできてるです。
  身近な物で言うとカレンダーです〜。カレンダーは縦と横で、できてるですね!
  日付が右へと進んで土曜日まで来ると一段下がって、また右から左へと続くですね!
  この考えは、覚えておいてほしいです。掛け算九九表も二次元配列ですね!
  二次元配列を使ったプログラムをみていくです〜
サンプルプログラム8_1_2
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9:
   10:
   11:
   12:
   13:
   14:
   15:
class Rei8_2_1{
    public static void main(String[] args){
        int[][] arr = {
            {1, 2, 3, 4, 5, 6},
            {7, 8, 9, 10, 11, 12}
        };

        for (int i=0;i<arr.length;i++){
            for (int j=0; j<arr[i].length; j++){
                System.out.print(arr[i][j] + "  ");
            }
            System.out.println("");
        }
    }
}

   この二次元配列の宣言の仕方は、3〜6行目で初期化も同時にやっているです。
  8行目のfor文と9行目のfor文を入れ子にして配列の値を出力しているです〜
  12行目は、改行です。入れ子というのは、ループの中にまたループを入れたりする
  ときに使う言葉です。ネストとも言うです。if文の中にif文を入れたときは、
  if文を入れ子にするとかのように使うですね!
  8行目のarr.lengthは、縦の要素数、9行目のarr[i].lengthは横の要素数を
  表しているです〜。なぜそうなるのかを考えてみると、もっと面白い二次元配列が
  作れるようになっちゃたりするです〜。
   そしてどんな感じかと言うですと、縦が2の横が6で構成されているです。
  実行かけてみると分かるですが、次の表のような感じになっているです〜

1 2 3 4 5 6
7 8 9 10 11 12

  そして、それぞれの添え字は次のようになっているです〜
[0][0] [0][1] [0][2] [0][3] [0][4] [0][5]
[1][0] [1][1] [1][2] [1][3] [1][4] [1][5]

   アクセスの仕方の考え方は一次元配列とほぼ一緒です。
  それぞれアクセスしたい場所(添え字)を記入してあげればアクセスできるですね!
  さっきのサンプルプログラムだと変数iと変数jを使ってアクセスしてるです。

 二次元配列の宣言の仕方
   一次元配列同様、二次元配列も初期化と同時に行う方法と配列の大きさを
  決めておいて後から値を代入する方法の2種類があるです。そして後から代入する方法
  では、宣言と確保を別々にやる方法と同時に行う方法があるです。

  やり方も同じです。
   二次元配列の宣言の例
    int arr[][];
    arr = new int[5][10];
    または
    int arr[][] = new int[5][10];
   代入の例
    arr[0][0] = 10;
    arr[0][1] = 20;
    arr[3][4] = 54;
    arr[4][9] = 99;

  二次元配列は、一次元配列と違って慣れないとかなり複雑です〜


  今回のポイント
  @ arr.lengthで縦の要素数、arr[番号].lengthで横の要素数を取得できるです〜
  A 配列とは関係ないですが、ループの中にループを入れたりすることを
    入れ子(ネスト)と言うです〜

  TOPに戻る     Java講座に戻る