2次元配列

 前節まで学習した配列はデータが線のように一列に並んでいるため、1次元配列と呼ばれます。これから縦と横に、つまり表のように並べる配列(2次元配列)を見てみましょう。2次元配列は次のように宣言します。

2次元配列宣言の書式
Dim 配列名(配列数指定, 配列数指定) As データ型

○ プロジェクト

 次のようにプロジェクトを作成してください。今回は、プログラムの入力のみを試します。実行してもメッセージ等は表示されません。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 TwoDimensionalAarray1

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '配列の宣言
  3.  Dim data(2, 3) As Integer
  4. End Sub

○ 解説

 5行目で2次元配列を宣言しています。縦3×横4の配列が用意されます。4つの要素を持つ配列が3つあるようなイメージです。

2次元配列の宣言
2次元配列の宣言

 次に2次元配列に値を代入する方法を見てみましょう。

2次元配列へデータ代入の書式
配列名(インデックス番号, インデックス番号) =

○ プロジェクト

 次のようにプロジェクトを作成してください。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 TwoDimensionalAarray2

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '配列の宣言
  3.  Dim data(2, 3) As Integer
  4.  '配列に値を代入
  5.  data(0, 2) = 100
  6.  data(1, 0) = 200
  7.  data(2, 3) = 300
  8.  '配列の中身を表示
  9.  Console.WriteLine(data(0, 0))
  10.  Console.WriteLine(data(0, 1))
  11.  Console.WriteLine(data(0, 2))
  12.  Console.WriteLine(data(0, 3))
  13.  Console.WriteLine()
  14.  Console.WriteLine(data(1, 0))
  15.  Console.WriteLine(data(1, 1))
  16.  Console.WriteLine(data(1, 2))
  17.  Console.WriteLine(data(1, 3))
  18.  Console.WriteLine()
  19.  Console.WriteLine(data(2, 0))
  20.  Console.WriteLine(data(2, 1))
  21.  Console.WriteLine(data(2, 2))
  22.  Console.WriteLine(data(2, 3))
  23.  Console.ReadLine()
  24. End Sub

○ 実行結果

0
0
100
0

200
0
0
0

0
0
0
300

○ 解説

 8行目では配列の0番の配列の2番の要素に100を代入しています。9行目では配列の1番の配列の0番の要素に200を代入しています。10行目では配列の2番の配列の3番の要素に300を代入しています。他の要素は配列が用意されたときに設定される初期化の状態のままです。

2次元配列に代入
2次元配列に代入

 次に、2次元配列での初期化の方法を学習しましょう。

2次元配列初期化の書式
Dim 配列名(,) As データ型 = @{!!値1, 値2, }, {値1, 値2, !!}
Dim 配列名 As データ型(,) = @{!!値1, 値2, }, {値1, 値2, !!}

○ プロジェクト

 次のようにプロジェクトを作成してください。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 TwoDimensionalAarray3

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '2次元配列の初期化
  3.  Dim data(,) As Integer = @{!!10, 20, 30, 40}, {100, 200, 300, 400!!}
  4.  '配列の中身を表示
  5.  Console.WriteLine(data(0, 0))
  6.  Console.WriteLine(data(0, 1))
  7.  Console.WriteLine(data(0, 2))
  8.  Console.WriteLine(data(0, 3))
  9.  Console.WriteLine()
  10.  Console.WriteLine(data(1, 0))
  11.  Console.WriteLine(data(1, 1))
  12.  Console.WriteLine(data(1, 2))
  13.  Console.WriteLine(data(1, 3))
  14.  Console.ReadLine()
  15. End Sub

○ 実行結果

10
20
30
40
100
200
300
400

○ 解説

 5行目では2次元配列の宣言と同時に値を格納しています。初期化の場合は配列の要素数を指定する必要はありません。1つの配列に初期化する値を「{}」内で指定し、それをさらにカンマ区切りで複数指定します。

2次元配列の初期化
2次元配列の初期化

 次に、2次元配列の要素数を確認してみましょう。配列の要素数は「配列名.Length」で確認できます。2次元配列の場合はどのような結果が出るのでしょうか。

○ プロジェクト

 次のようにプロジェクトを作成してください。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 TwoDimensionalLength

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Sub Main()
  2.  '配列の宣言
  3.  Dim data(2, 3) As Integer
  4.  '配列の要素数を表示
  5.  Console.WriteLine("要素数: " & data.Length)
  6.  '配列の次元数を表示
  7.  Console.WriteLine("配列の次元: " & data.Rank)
  8.  '2次元配列内の配列数を表示
  9.  Console.WriteLine("配列数: " & data.GetLength(0))
  10.  '2次元配列内の一つの配列の要素数を表示
  11.  Console.WriteLine("1つの配列の要素数: " & data.GetLength(1))
  12.  Console.ReadLine()
  13. End Sub

○ 実行結果

要素数: 12
配列の次元: 2
配列数: 3
1つの配列の要素数: 4

○ 解説

 8行目で配列の要素数を取得していますが、配列全体の要素数を取得できます。配列一つ一つの要素数を調べるには別の方法を使います。

 11行目で配列の次元数を取得しています。「配列名.Rank」で配列の次元数を取得できます。今回は2次元配列のため2と出力されます。14行目では2次元配列内の配列数を取得しています。「配列名.GetLength()」を使います。その「()」の中に2次元配列内の何次元の要素数を取得したいかをセットします。その次元数は0からカウントされているので、()内に0と指定すると配列数を取得できます。また、17行目のように()内に1と指定すると、配列一つ一つの要素数を取得することができます。

前へ   次へ