请问这里的UBound()是什么意思呢?是不是指数组的最大下标(即i=30时,最大的下标就为30)?

数组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
谢谢!

茅侃侃
浏览 101回答 2
2回答

阿晨1998

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

拉丁的传说

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
打开App,查看更多内容
随时随地看视频慕课网APP