宣言と同時に初期化
配列変数は、宣言と同時に初期値を設定することができます。
配列変数を宣言だけして、後から値を代入する方法もありますが、できるだけ宣言時に初期値を設定するように心掛けてください。
配列変数に限らず、変数はできるだけ宣言時に初期値を設定しましょう。
初期値を設定しないと、整数型配列変数は0で初期化され、文字型配列変数では空文字列で初期化されます。
宣言時に値を設定するときは、配列変数の添え字は記述できません。()だけを記述し、初期値の数だけ自動的に配列変数が割り当てられます。次の例を参考にしてください。
初期値を設定は、各初期値をカンマ , で区切って、[値1, 値2, 値3, ....] のように設定します。
' 整数配列変数の初期化 Dim kakaku() As Integer = {120, 80, 55, 300, 168}
この例では、{120, 80, 55, 300, 168}の初期値を
kakaku(0)
kakaku(1)
kakaku(2)
kakaku(3)
kakaku(4)
の5個の配列変数に割り当てられます。
そして、{}内の値が順番に配列変数に代入されます。
宣言時に初期値を指定しないと、配列の各変数に初期値を代入する必要があります。
また、宣言時には配列の要素の上限を指定する必要があります。
Dim kakaku(4) As Integer kakaku(0) = 120 kakaku(1) = 80 kakaku(2) = 55 kakaku(3) = 300 kakaku(4) = 168
サンプルプログラム1
1次元配列変数を初期化して、その配列要素を表示するプログラムを作成します。
ソースリストの枠内をクリックすると全選択できます。
Module Module1 Sub Main() '1次元整数配列変数の初期化 Dim kakaku() As Integer = {120, 80, 55, 300, 168} ' 配列要素の表示 For i As Integer = 0 To 4 Console.WriteLine(kakaku(i)) Next End Sub End Module
サンプルプログラム2
次のサンプルプログラムでは、初期化した配列変数の値を、後から変更します。
kakaku(1)と、kakaku(3)をマイナスの値に書換えます。
また、For .... Next のループ回数を kakaku.Length - 1 にしました。.Length は要素数なので、配列の上限はそれよりひとつ少ないので、マイナス1 するだけです。
こちらのほうがスマートですね。
Module Module1 Sub Main() ' 1次元整数配列変数の初期化 Dim kakaku() As Integer = {120, 80, 55, 300, 168} ' 配列要素の値変更 kakaku(1) = kakaku(1) * -1 kakaku(3) = kakaku(3) * -1 ' 配列要素の表示 For i As Integer = 0 To kakaku.Length - 1 Console.WriteLine(kakaku(i)) Next End Sub End Module