陣列是一種程式語言的基本資料結構,屬於一種循序性的資料結構,陣列屬於參考資料型態,它可以將相同資料型態的變數集合起來,使用一個名稱代表,以索引值存取元素,每一個元素相當於是一個變數。
陣列同樣使用【Dim】關鍵字來宣告,我們可以在宣告同時指定陣列尺寸。一維陣列的宣告語法,如下所示:
Dim 陣列名稱(最大索引) As 資料型態
或
Dim 陣列名稱(0 To 最大索引) As 資料型態
陣列元素個數為括號的最大索引數加一,也可以使用To關鍵字指出範圍。
例如:宣告一維陣列來儲存學生姓名和成績,如下所示:
Dim arrScore(4) As Integer
Dim arrName(4) As String
上述程式碼宣告2個一維陣列,一為整數陣列;一是字串陣列,括號值是陣列最大的索引值。索引值是從0開始,以整數陣列來說是0~4共有5個元素。
宣告一維陣列-陣列值
我們也可以在宣告陣列時,不指定陣列最大索引值,而直接指定陣列元素的初值,如下所示:
Dim arrScore() As Integer = {60, 89, 75, 68, 90}
另一種方法是使用指定敘述來指定陣列值,如下所示:
arrScore(0) = 60
arrScore(1) = 89
arrScore(2) = 75
arrScore(3) = 68
arrScore(4) = 90
宣告一維陣列-取出陣列值
同樣方式,我們可以使用索引值來取出陣列元素值,如下所示:
Dim score As Integer
score = arrScore(3)
上述程式碼取得陣列索引3的值,因為索引值從0開始,也就是陣列的第4個元素值68
For Each迴圈走訪陣列元素與邊界函數-走訪陣列(語法)
For Each迴圈可以輕鬆走訪整個一維陣列,其語法如下所示:
For Each 變數 In 陣列
程式區塊
Next
上述「變數」可以取得陣列的一個元素,變數需要和陣列屬於相同資料型態,迴圈自動從索引0開始,每執行一次迴圈取得一個元素值並且自動移至下一個元素,直到沒有元素為止。
例如:計算上一節arrScore陣列元素的總和,如下所示:
For Each element In arrScore
total += element
Next
上述程式碼的變數element是陣列元素,每執行一次,就將陣列元素值加到total,最後變數total是陣列元素的總和。
如果使用For/Next迴圈(Do/Loop迴圈也可以)來存取陣列元素,我們可以搭配Visual Basic函數來取得陣列邊界,傳入參數是陣列變數,如下表所示:
函數 | 說明 |
LBound(Array) | 傳回整數值的陣列最小索引值,因為Visual Basic預設索引是從0開始,所以其預設的傳回值是0 |
UBound(Array) | 傳回整數值的陣列最大索引值 |
多維陣列的處理-說明
二維陣列或多維陣列都是一維陣列的擴充。如果將一維陣列想像成一度空間的線,二維陣列就是二度空間的平面,三維陣列即空間。
在日常生活中的二維陣列應用非常廣泛,只要是平面的表格,都可以轉換成二維陣列來表示。例如:月曆、功課表和成績單等。例如:在Visual Basic宣告學生成績的二維陣列,如下所示:
Dim Scores(,) As Integer = { { 54, 68, 93 }, { 67, 78 , 89} }
二維陣列如果沒有指定陣列初值,我們需要在宣告時指定陣列尺寸,如下所示:
Dim Scores(1, 2) As Integer
Scores(0,0)=54
Scores(0,1)=68
Scores(0,2)=93
Scores(1,0)=67
Scores(1,1)=78
Scores(1,2)=89
上述程式碼設定二維陣列的元素值。
多維陣列的處理-走訪元素
在設定陣列值後,存取二維陣列需要使用二層巢狀迴圈,如下所示:
For i = 0 To 1
For j = 0 To 2
Sums(i) += Scores(i, j)
Next j
Next i
留言列表