數組的定義與聲明
在使用數組之前,一般要聲明數組,當然也可以採用隱式聲明的方法。聲明數組的方法與聲明各種類型的變數一樣,可以用Dim,Private,Public或Static來聲明,只不過聲明數組時需要設定數組的上下界,也就是數組下標索引的起始值和中止值。
(1)靜態數組:
其聲明的文法如下:
Dim│Private│Public│Static
數組名([下標下界 To]下標上界)
[As 資料類型]
說明:
數組名後是圓擴弧“(
)”擴起來,不能採用其它符號。
如果不指明數組的下標下界,系統預設為是0,數組的下標上界,使用長整型(Long)資料,在VB中規定上界不得超過2,147,483,647。
下標的下界不能大於下標的上界;
可以用變數名或常數名(以及實數)作為下標邊界,當下標的邊界是常數名時,數組的大小固定(靜態數組),當下標的邊界是變數名時,數組的大小可作動態定義(動態數組)。
例:
Dim A(10) As Integer
'表示數組名為A,預設下標界為0,上界為10的有11個整型元素的數組,即:從A(0),A(1)到A(10);
Dim B(1
To 20) As Integer'表示數組名為B,下標下界為1,下標上界為20的,有20個整型的元素;
Dim BirthDay (1 To 10) As Date
'表示BirthDay是一個索引從1到10的Date型數組。
Dim DayArray (50)'表示變數是一個有51個索引元素的Variant數組;
Public Class (10) As String
'聲明一個長度為11的全域整型數組Class;
Dim Matrix(3,4) As Integer
'表示變數是一個二維整型數組;
Dim MyMatrix(1 To 5,4 To 9, 3 To5) As Double
'表示變數是一個顯示指定了上下界的三維double數組;
為數組賦初值可以採用迴圈語句。如:
Dim I As Integer
For I=0 To 11
C(I)=I
'C(0)、C(1)、……C(11)
Next I
例:下面的練習使用一個名為Temperatures的一維公用數組來記錄一周七天的日最高氣溫。
介面:
在表單上添加3個命令按鈕,表單的AutoRedraw屬性設定為True。——當使用Print方法在表單中顯示資訊時,始終將表單的AutoRedraw屬性設定為True。這樣,當表單被另一個視窗遮蓋然後該表單重新顯示時,VisualBasic將自動重新繪製螢幕。
註:沒有使用強制聲明“Option Explicit”語句。
代碼:
Dim Temperatures(6) As Variant
Private Sub Command1_Click()
Cls
Prompt$ = "Enter the high temperature."
For i% = 0 To 6
Title$ = "Day" & i%
Temperatures(i%) = InputBox(Prompt$, Title$)
Next i%
End Sub
Private Sub Command2_Click()
Cls
Print "High Temperatures for the week:"
Print
For i% = 0 To 6
Print "Day "; i%, Temperatures(i%)
Total! = Total! + Temperatures(i%)
Next i%
Print
Print "Average high temperature: "; Total! / 7
End Sub
Private Sub Command3_Click()
End
End Sub
說明:該程式是示範如何在程式中使用數組存放和處理一組相關數值。通過使用InputBox函數和For...Next迴圈,氣溫值被賦值給數組。迴圈中迴圈計數器被用來索引數組中的每個元素。數組內容通過使用For...Next迴圈和Print(列印)方法顯示在表單中,接著平均最高氣溫就被計算並顯示出來了。
也可利用For迴圈嵌套有效地處理多維陣列。例:
Dim i As Integer,j As Integer
'設定計數器
Dim class(14) As String '定義班級名稱數組
Dim studentname(14,35) As String '定義學生姓名數組
……
'為班級數組賦值
…… '為學生數組賦值
For i=0 To 14
For j=0 To 35
If studentname(i,j)="張三"
Then
MsgBox "張三在"十class(i)
End If
Next j
Next i