UBound()的疑问

来源:百度知道 编辑:UC知道 时间:2024/09/23 09:34:01
数组arr中共有40个元素,以下代码是用于计算数组arr中每个元素与其下标相除所得的和,即arr(1)/1 + arr(2)/2 + arr(3)/3 + ... + arr(40)/40

Option Base 1
Function Fun(a() As Single) As Single
Dim i As Integer
Dim sum As Single
sum = 0
For i = 1 To UBound(a)
sum = sum + a(i) / i
Fun = sum
Next

End Function

Private Sub Command1_Click()
Dim arr
Dim arr2(40) As Single
arr = Array(12.5, 65.4, 56, 73, 46.23, 58.25, 83.49, 96, 27.3, 36.78, 29.26, 89.4, 34.7, 45.4, 56.9, 67.4, 78, 98, 87.5, 76.8, 34.6, 55.8, 64.7, 43.7, 99.4, 84.7, 66.2, 23.9, 55.5, 44.1, 33.2, 43.5, 41.2, 28.3, 78.6, 98.3, 56.1, 73.6, 49.3, 48.3)
For i = 1 To UBound(arr)
arr2(i) = arr(i)
Next i
r = Fun(arr2())
Text1.Text = Str(r)
SaveData
End Sub

Sub SaveData()
Open "out3.txt" For Output As #1
Print #1, Text1.Text
Close 1
End Sub
请问这里的UBound()是什

UBound函数
返回一个 Long 型数据,其值为指定的数组维可用的最大下标。

语法

UBound(arrayname[, dimension])

UBound 函数的语法包含下面部分:

部分 描述
arrayname 必需的。数组变量的名称,遵循标准变量命名约定。
dimension 可选的;Variant (Long)。指定返回哪一维的上界。1 表示第一维,2 表示第二维,以此类推。如果省略 dimension,就认为是 1。

说明

UBound 函数与 LBound 函数一起使用,用来确定一个数组的大小。LBound 用来确定数组某一维的上界。

对具有下述维数的数组而言,UBound 的返回值见下表:

Dim A(1 To 100, 0 To 3, -3 To 4)

语句 返回值
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4

你猜对了,UBound()是求数组的最大下标值,当i=30时,最大下标仍为40,因为程序的第13行“Dim arr2(40) As Single”把数arr2定义了40个元素,所以最大下标值为40。