2011年8月6日 星期六

Visual Basic 2010 陣列說明

陣列是一種程式語言的基本資料結構,屬於一種循序性的資料結構,陣列屬於參考資料型態,它可以將相同資料型態的變數集合起來,使用一個名稱代表,以索引值存取元素,每一個元素相當於是一個變數。

陣列同樣使用【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

張貼留言

LinkWithin

Related Posts Plugin for WordPress, Blogger...

熱門文章