2次元以上の配列の初期化
初期化が必要なときは、2次元配列も1次元配列と同様に、宣言と同時に初期化を行うことができます。
' 整数2次元配列変数の初期化 Dim nedan(,) As Integer = New Integer(,) {{50, 80}, {105, 70}} ' または Dim nedan(,) As Integer = {{50, 80}, {105, 70}}
2次元配列の上限の添え字を書くことはできません。(,)のようにカッコの中に、, だけを書きます。
初期値は、{}の中に、{}をカンマで区切って指定します。{50, 80}とすれば、1行分を初期化するので、nedan(0, 0)は50、nedan(0, 1)は80になります。
上の初期化の例を代入で書き直すと、次のようになります。
Dim nedan(1, 1) As Integer nedan(0, 0) = 50 nedan(0, 1) = 80 nedan(1, 0) = 105 nedan(1, 1) = 70
サンプルプログラム
2次元配列変数を使って、各列(国語、算数、理科)の平均値を計算するプログラムを作成します。
たとえば、ひとりの生徒の国語の点数が80点、算数が95点、理科が90点の場合、3次元配列を使って{80, 95, 90}とすれば、人数分のデータを簡単に保管できます。
配列の初期化は1行が長くなるので、_で改行しています。
各科目の合計は2次元配列を使って、gokei(0, 0)を国語、gokei(0, 1)を算数、gokei(0, 2)を理科にします。
ソースリストの枠内をクリックすると全選択できます。
Module Module1 Sub Main() ' 生徒数 Dim Seitosu As Integer = 5 ' 科目数 Dim Kamokusu As Integer = 3 ' 3次元配列変数の初期化{国語, 算数, 理科} Dim seiseki(,,) As Integer = { _ {75, 85, 90}, _ {100, 80, 80}, _ {90, 90, 90}, _ {65, 90, 80}, _ {80, 85, 100} _ } ' 合計値の2次元配列変数の宣言 Dim gokei(0, 2) As Integer ' 平均値の2次元配列変数の宣言(データ型に注意) Dim heikin(0, 2) As Double ' 各科目合計を求める For i As Integer = 0 To Seitosu - 1 gokei(0, 0) = gokei(0, 0) + seiseki(i, 0) gokei(0, 1) = gokei(0, 1) + seiseki(i, 1) gokei(0, 2) = gokei(0, 2) + seiseki(i, 2) Next ' 平均値の計算と表示 For j As Integer = 0 To Kamokusu - 1 heikin(0, j) = gokei(0, j) / Seitosu Console.Write("heikin(0, " & j & ") = ") Console.WriteLine(heikin(0, j)) Next End Sub End Module