VB:总提示我下标越界!

来源:百度知道 编辑:UC知道 时间:2024/05/17 15:50:27
我按书上的习题设计程序如下:
Private Sub Form_Click()
Dim a
Dim b
Dim c(8) As Integer
a = Array(2, 8, 7, 6, 4, 28, 70, 25)
b = Array(79, 27, 32, 41, 57, 66, 78, 80)
For i = 1 To 8
c(i) = a(i) + b(i)
Print a(i);
Print b(i);
Print c(i);
Next i
End Sub
运行后就说我下标越界,并且会重点标出c(i) = a(i) + b(i)语句,这是怎么回事?我明明没有越界啊??!!望高人指点,谢谢!

在VB中,数组的第一个元素的下标默认值是0,即c(8)最后一个元素的下标是7,没有8,i=8当然是下标越界了!

解决办法:
方案一:可在代码窗口的通用、声明部分增加一句option base 1 ,它表示用Array()生成的数组,它的第一个元素的下标是从1开始,这样就有了下标8了 。
方案二:把For i = 1 To 8 改成 For i = 0 To 7。

用Array()生成的数组,它的第一个元素的下标默认是0,也就是说,最后一个元素的下标是7,没有8(I=8当然错了)
可以在代码最上面加一句:
option base 1
它表示用Array()生成的数组,它的第一个元素的下标要是1,这样就有了下标8了

是这样的,数组都是从0开始的。,
也就是说你定义的c(8),应该是从c(0)--c(7)
所以把For i = 1 To 8改成:
For i = 0 To 7就行了

c(i) = a(i) + b(i) 中a和b的下标都是0到7,你用1到8,当然下标越界了。

在代码最上面加一句:
option base 1

1