实例2-7 二维数组的使用
该实例实现步骤如下。
1 创建窗体
在本章的项目chapter2中,右键单击解决方案资源管理器中项目名下对应节文件夹“数组”,在弹出菜单中选择“添加”→“Windows窗体”菜单命令,在弹出的对话框中输入窗体名DArrayFrm,单击“添加”按钮完成窗体的创建。
2 添加代码
在窗体类中添加代码2-11中的代码。
代码2-11 DArrayFrm.vb
01. Public Class DArrayFrm 02. Private Function GetArray(ByVal OriginArray(,) As Double, ByVal Line As Integer) As Double() 03. '获得带二维数组的一维上限值 04. Dim ub As Integer = OriginArray.GetUpperBound(1) 05. '定义一个一维数组,上限值为该二维数组的一维上限值 06. Dim ta(ub) As Double 07. Dim i As Integer 08. For i = 0 To ub -1 09. 'Line为二维数组的行下标,依次将Line行对应的值赋给一维数组ta 10. ta(i) = OriginArray(Line, i) 11. Next 12. Return ta 13. End Function 14. Private Sub DArrayFrm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 15. Dim a(3, 4) As Double ' 定义二维数组 16. Dim i, j As Integer 17. For i = 0 To 2 18. For j = 0 To 3 19. a(i, j) = i * 10 + j '按行依次为数组中的每一个元素赋值 20. Next 21. Next 22. Dim str As String = "" 23. For i = 0 To 3 24. '获得第三行的4个数据,将它们连接成一个字符串 25. str += " " & GetArray(a, 2)(i) 26. Next 27. MsgBox(str) '显示第三行的所有数据 28. End Sub 29. End Class
代码2-11的执行步骤如下:
① 第2行代码定义了一个GetArray ()函数,用于获得二维数组中某一行的所有数据;
② 第4行代码获得相应二维数组的一维上限值;
③ 第6行代码定义了一个一维数组;
④ 第8,9,10,11行代码依次扫描第Line+1行的相应值,并将其赋给上面定义的一维数组;
⑤ 第12行代码返回一维数组的值;
⑥ 第15行代码定义了一个二维数组a(3,4),三行四列,长度为12;
⑦ 第16,17,18,19,20,21行代码按行乘10再加列值来为二维数组各元素赋值,所得该二维数组值如下:
0,1,2,3
10,11,12,13
20,21,22,23
3 运行结果
按F5键,运行程序,弹出如图2-12所示对话框。
图2-12 实例2-7运行结果
2.2.2 动态数组
动态数组在声明前不确定大小的数组时使用,一个动态数组的大小可以在程序执行期间改变。在数组声明的时候使用Dim关键字声明不指定大小的数组,以后用ReDim语句定义数组大小。使用ReDim语句可以改变数组中元素的数量,但不能改变数组的维数。示例如下:
Dim A() As Integer
ReDim A(5)
使用动态数组需要注意如下几点。
(1)ReDim语句只能出现在过程中,而不能出现在程序的声明部分,该语句是可执行语句。
(2)使用ReDim语句可以反复改变数组元素。
(3)使用ReDim语句则原来数组的数据都将丢失。
(4)ReDim语句不改变数组的数据类型或不为数组元素初始化新数值。新的元素用它们数据类型的默认值初始化。
下面用实例说明如何重定义数组。