2次元配列の初期化 [VB]

VB2012-2017

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