静态数组的声明与例子练习
数组的定义与声明
在使用数组之前,一般要声明数组,当然也可以采用隐式声明的方法。声明数组的方法与声明各种类型的变量一样,可以用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