今回は、配列を使ってみましょう。
変数は1つ1つ別のデータですが、
配列は関連したデータを連続で持つ構造です。
配列の基本的な使い方
Sub Main()
Dim array(2) As Integer
array(0) = 50
array(1) = 200
array(2) = 1000
Console.WriteLine("array(0)=" & array(0))
Console.WriteLine("array(1)=" & array(1))
Console.WriteLine("array(2)=" & array(2))
End Sub
実行結果は以下のようになります。
array(0)=50
array(1)=200
array(2)=1000
確保される要素数に注意
3つの領域を持つInteger型の配列変数arrayを宣言しています。
Dim array(2) As Integer
え? 2つの領域じゃないの?
と思いますよね普通(笑)
ですが、これが違うんです。
array(2) と記述していますが、
これは array(0), array(1), array(2)までの3つの領域を確保しているんです。
array(1)からarray(2)までの2要素ではありませんので、
注意して下さい。
array(5)と書いたら、
array(0)からarray(5)までの6要素が確保される事になります。
そして、配列の要素に数値をそれぞれ代入し、表示しています。
配列の宣言と同時に初期化
配列の宣言と同時に初期化もする事ができます。
Sub Main()
Dim array() As Integer = {50, 200, 1000}
Console.WriteLine("array(0)=" & Array(0))
Console.WriteLine("array(1)=" & Array(1))
Console.WriteLine("array(2)=" & Array(2))
End Sub
array(0)=50
array(1)=200
array(2)=1000
宣言と同時に初期化する場合は、要素数は指定せずに、
{}の中にデータを記述します。
記述したデータの分だけの領域が自動的に確保されます。
配列を要素数なしで宣言する ReDim 再宣言
配列の宣言時には要素数を指定しなくても問題はありません。
Sub Main()
Dim array() As Integer
'array(0) = 10 'エラー
ReDim array(2)
array(0) = 50
array(1) = 200
array(2) = 1000
Console.WriteLine("array(0)=" & Array(0))
Console.WriteLine("array(1)=" & array(1))
Console.WriteLine("array(2)=" & array(2))
End Sub
array(0)=50
array(1)=200
array(2)=1000
実際に配列を使う時には、
Redim と書いて、配列を要素数有りで宣言し直します。
Redimで書く要素数は、例えば
2と書いたら、0から2までの3個の領域を確保した事になります。
10と書いたら、0から10までの11個の領域を確保した事になります。
String型(文字列型)の配列
今度は数値ではなく、文字列型の配列を作ってみましょう。
Sub Main()
Dim array(2) As String
array(0) = "Visual"
array(1) = "Basic"
array(2) = "2020"
Console.WriteLine("array(0)=" & Array(0))
Console.WriteLine("array(1)=" & array(1))
Console.WriteLine("array(2)=" & array(2))
End Sub
array(0)=Visual
array(1)=Basic
array(2)=2020
文字列を扱う場合にはString型を使い、
代入する際は“”(ダブルクォーテーション)で括ります。
確保した領域以外の領域にアクセスするとどうなる?
配列は自分で要素数を設定して使いますが、
例えば、配列変数arrayを0,1,2までの領域を確保したとして、
array(3) = 10 のようなコードを書いたらどうなるでしょう?
もちろん、0,1,2までしか確保していないので、
3と言う領域は未知の領域です。
結果的には、
コンパイル時にエラーは出ませんが、
プログラム実行時にエラーが出て
異常終了となってしまいます。
このように、配列の領域は
自分でしっかりと管理しなければなりません。
以上、基本的な配列の使い方でした。
あまり難しくは無いので、実際にコードを書いたり、
アレンジしながら実行してみてください。