数组是一组按一定顺序排列的数据的集合。在VB中,把一组具有相同名字,不同下标的变量称为数组,其一般格式如下:S(N)。
说明:S为数组名,N为下标(一般情况下,下标从零开始)。数组元素指数组中的每一个元素。表示成:数组名(下标)如:A(3),TEMP(5,1)。下标的取值:可以是常数、变量、表达式,如:A(8),B(i),C(3+K)。
如t(k)(k=1,2,3,…,99,100)为数组元素(或称下标变量),它表示第k个学生的成绩,k称为下标变量的下标。当下标值带有小数部分时,系统会自动对它四舍五入取整,如x(7.7)将作为x(8)处理。
所有班级(如6个班,每班40人)同学的英语成绩:
表示1:G(1) G(2) G(3)…G(240)
表示2:G(1,1) G(1,2)…G(1,40)
G(2,1) G(2,2)…G(2,40)
…
G(6,1) G(6,2)…G(6,40)
下标还可以是下标变量,如:
A(A(5))令A(5)=4则A(A(5))=A(4)
每个数组元素用来保存一个数据,其使用与简单变量类似。
例如:G(8)=87
注意:
(1)要用圆括号把下标括起来。例如,将X(8)表示成:X[8]、X{8}或X8都是错误的。
(2)下标必须是整数,否则将被自动四舍五入为整数。
(3)下标的最小取值称为下界,下标的最大取值称为上界。数组元素的下标必须在其下界和上界之间,否则将会出错。
一、数组的声明(定义)
使用数组之前,必须先声明数组。定义数组的目的是为数组分配存储空间,数组名即为这个存储空间的名称,而数组元素即为存储空间的每一个单元。每个单元的大小与数组的类型有关。语法格式为:
Public|Private|Dim 数组名([下界To]上界)[As数据类型]
功能:指定数组的名称、长度和数据类型。
说明:(1)public修饰的数组为全局数组,且只能在Module模块中声明。
(2)在窗体的通用声明中用Dim或Private修饰的数组为模块级数组,其值在该窗体中的所有过程中有效。
(3)在过程内用Dim修饰的数组为局部数组,其值在该过程内有效。
数组长度:上界—下界+1,下界可省略,当省略时下界为0,通过在窗体的通用声明中添加Option Base 1可改变数组默认下界为1。
例如:
Dim Sum(-1 To 8)As Long ′下标号从-1~8共10个元素
Dim Arry(1 To 20)As Integer ′下标号从1~20共20个元素
Dim s(3)As Integer
在VB中可以用四个语句来定义数组,这四个语句格式相同,但适用范围不同:
(1)Dim用来在窗体模块中或标准模块中,定义窗体或标准模块数组,也可用于过程。
(2)ReDim用在过程中(主要用于定义动态数组)。
(3)Static用在过程中(主要用于定义静态数组)。
(4)Public用在标准模块中,定义全局数组。
二、定义数组的格式
在定义数组时,VB提供了两种格式。
1.第一种格式
第一种格式与传统的数组定义相同,对于数组的每一维,只要给出下标的上界,即可以使用下标的最大值。
对于一维数组格式如下:
Dim数组名(下标上界)As类型名称(www.daowen.com)
对于二维数组格式如下:
Dim数组名(第一维下标上界,第二维下标上界)As类型名称
说明:
(1)如果省略“As类型名称”则定义的数组为Variant类型。
(2)数组必须先定义后使用。
(3)当用Dim语句定义数组时,数组在定义后自动被初始化,该语句把数值数组中的全部元素都初始化为“0”,而把字符串数组的全部元素都初始化为“空字符串”。
(4)一般情况下,下标的下界默认为0,如果希望从1开始,可以通过Option Base语句来设置,其格式为:
Option Base N
Option Base语句用来指定数组下标的下界。N只能是0或1,Option Base语句只能出现在窗体层或模块层,不能出现在过程中,并且必须放在数组定义之前。此外,如果定义的是多维数组,则下标的默认下界对每一维都有效。
2.第二种格式
用第一种格式定义的数组,其下标的下界只能是0或1,而如果使用第二种格式,则可根据需要指定数组的上界和下界。其格式如下:
Dim数组名([下界]To[上界],[下界]To[上界]...)As类型名称
下标的范围可以是-32767~-32768。
三、定义数组时应注意的事项
1.数组名的命名规则与变量名相同,在命名时应尽可能有一定的含义,做到“见名知义”(名称的唯一性)。
2.在同一过程中,数组名不能与变量名相同,否则会出错。
3.在定义数组时,每一维的元素个数必须是常数,不能是变量或表达式。
4.数组类型通常在As语句中给出,如果省略了As语句,则定义的是默认数组。此外也可以通过类型说明符来指定数组的类型(A%(5))。
5.测试数组上界值和下界值的两个函数:
LBound(数组名[,维])(测下界)
UBound(数组名[,维])(测上界)
这两个函数分别返回一个数组中指定维的下界与上界,其中“数组”是一个数组名,“维”是要测试的维,LBound函数返回“数组”某一“维”的下界值,而UBound函数返回“数 组”某一维的上界值。如:
Dim s(-1 to 3,-2 to 4)as Integer:LBound(s,2)=-2:UBound(s,2)=4
例如,要打印一维数组A的各个值,可以通过下面的代码实现:
又如,要打印二维数组B的各个值,可以通过下面的代码实现:
四、默认数组
在VB中允许定义默认数组,所谓的默认数组,就是数据类型为Variant的数组。默认数组可以说是一个混合数组。例如:
Private Sub Form_Click()
Dim a(3)
a(0)="张三"
a(1)=20
a(2)="12345678"
a(3)=97.5
Print a(0);a(1);a(2);a(3)
End Sub
图9-2 默认数组实例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。