VB.NET 配列の簡単な使い方

今回は、配列を使ってみましょう。

変数は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と言う領域は未知の領域です。

結果的には、
コンパイル時にエラーは出ませんが、
プログラム実行時にエラーが出て
異常終了となってしまいます。

このように、配列の領域は
自分でしっかりと管理しなければなりません。


以上、基本的な配列の使い方でした。
あまり難しくは無いので、実際にコードを書いたり、
アレンジしながら実行してみてください。