静态数组的声明与例子练习
數組的定義與聲明
在使用數組之前,一般要聲明數組,當然也可以采用隱式聲明的方法。聲明數組的方法與聲明各種類型的變量一樣,可以用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
?
總結
以上是生活随笔為你收集整理的静态数组的声明与例子练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: syslog记录history历史记录
- 下一篇: 你真的明确知道它们的用法吗-从基础学起