VB中数组的下标越界?

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:56:28
各位高手帮我看一下下面的程序,提示说数组下标越界,可是我找不出哪里越界!帮帮忙咯!
Dim getsubkey(3, 18) As String
Dim subkey1(27), subkey2(27) As String
Dim i, j, m, n, t, k As Integer
t = 0
k = 0
x = 0
y = 0
For i = 0 To 3
For j = 0 To 18
Print getsubkey(i, j) = Chr(Int(Rnd * 127))
Next j
Next i
For m = 0 To 3
For n = 0 To 18
If n Mod 2 Then
subkey1(t) = getsubkey(m, n) '下标越界
t = t + 1
Else
subkey2(k) = getsubkey(m, n) '下标越界

k = k + 1
End If
Next n
Next m

t、k的值超过27了
n=0 to 18,每隔2个取一次,要取10次
m=0 to 3,是0、1、2、3,一共4次
t和k都能取到4*10=40啦

从你的
If n Mod 2 Then
可知,t+1执行一半,k+1执行一半。
一共执行4*19=76次,t、k各执行38次。
而你的subkey1(27), subkey2(27),一共才多少?
当然要越界了!