为什么做VB 的时候总是出现下标越界

来源:百度知道 编辑:UC知道 时间:2024/05/31 21:47:28
Dim a(1 To 60) As Integer
Private Sub Command1_Click()
For i = 1 To 60
a(i) = Int(Rnd * 100 + 100)
Text1.Text = Text1.Text & a(i) & " "
If i Mod 10 = 0 Then Text1.Text = Text1.Text & Chr(13) & Chr(10)
Next i
End Sub

Private Sub Command2_Click()
Dim b(1 To 60) As Integer, c(1 To 60) As Integer
For i = 1 To 60
If a(i) Mod 2 = 0 Then
n = n + 1
b(n) = a(i)
End If
If a(i) Mod 2 <> 0 Then
n = n + 1
c(n) = a(i)
End If
Next i
For i = 0 To 59
For j = j + 1 To 60
If b(i) > b(j) Then
t = b(i)
b(i) = b(j)
b(j) = t
End If
If c(i) > c(j) Then
t = c(i)
c(i) = c(j)
c(j) = t
End If
Text2 = b(i) & " "
Text3 = c(i) & " "
Next j

数组?
用了OPTION BASE 1
下标再从0开始就会出现下标越界了
For i = 0 To 59
For j = j + 1 To 60
If b(i) > b(j) Then
t = b(i)
b(i) = b(j)
b(j) = t
End If
If c(i) > c(j) Then
t = c(i)
c(i) = c(j)
c(j) = t
End If
Text2 = b(i) & " "
Text3 = c(i) & " "
Next j
Next i
这里的i从0开始,而你的定义是从1开始的,所以就出错了
因为没有b(0)和c(0)