VB数组下标越界

来源:百度知道 编辑:UC知道 时间:2024/05/11 14:17:15
Private Sub Form_Click()
Dim a() As Variant

Dim t As Integer
a = Array(5, 4, 9, 8, 6, 1)
For i = 0 To 5
For j = 0 To 5 - i
If a(i) < a(i + 1) Then
t = a(i)
a(i) = a(i + 1)
a(i + 1) = t
End If
Next j
Next i
Print a(5)
End Sub

当然会下标越界啦,你的for循环里有一句写的是
If a(i) < a(i + 1) Then
那你试想,当i=5的时候,这句就成了
If a(5) < a(6) Then
开始时你没有给数组元素6赋值,只赋值从0到5号,vb就当成6号没有了,所以就下标越界了。。。

如果我没猜错,你这段程序,本意应该是将数组元素降序排列的吧?

上面的回答非常正确我也不多加说明了,呵呵!