代码改变世界

静态数组的声明与例子练习

2011-01-12 16:35  javaspring  阅读(381)  评论(0编辑  收藏  举报

数组的定义与声明

在使用数组之前,一般要声明数组,当然也可以采用隐式声明的方法。声明数组的方法与声明各种类型的变量一样,可以用DimPrivatePublicStatic来声明,只不过声明数组时需要设置数组的上下界,也就是数组下标索引的起始值和中止值。

1)静态数组:

其声明的语法如下:

    Dim│Private│Public│Static  数组名([下标下界 To]下标上界) [As 数据类型]

说明:

数组名后是圆扩弧  扩起来,不能采用其它符号。

如果不指明数组的下标下界,系统默认为是0,数组的下标上界,使用长整型(Long)数据,在VB中规定上界不得超过2147483647

下标的下界不能大于下标的上界;

可以用变量名或常数名(以及实数)作为下标边界,当下标的边界是常数名时,数组的大小固定(静态数组),当下标的边界是变量名时,数组的大小可作动态定义(动态数组)。

Dim A(10) As Integer '表示数组名为A,缺省下标界为0,上界为10的有11个整型元素的数组,即:从A0),A1)到A10);

Dim B(1 To 20) As Integer'表示数组名为B,下标下界为1,下标上界为20的,有20个整型的元素;

Dim BirthDay (1 To 10) As Date '表示BirthDay是一个索引从110Date型数组。

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      'C0)、C1)、……C11
    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