广州到佛山西樵山:一个vb问题,请帮忙,谢谢

来源:百度文库 编辑:神马品牌网 时间:2024/04/20 06:40:59
dim a
a=array(1,2,3,4,5,6,7)
for i=Lbound(a) to Ubound(a)
a(i)=a(i)*a(i)
next i
print a(i)
出现下标越界,如果把print a(i)改成print i
就是7,所以我不懂了,怎么是7呢
lbound=0,ubound=6啊
郁闷了
请详解谢谢
追加30分

vb 里面的FOR 语句
从lbound=0执行到ubound=6
关键是最后一句 NEXT I
这样I 就是7了。

你可以在循环语句后加一句 I=I-1。再使用PRINT。

这样就可以了
Dim b As Integer
Dim a
a = Array(1, 2, 3, 4, 5, 6, 7)
For i = LBound(a) To UBound(a)
a(i) = a(i) * a(i)
b = a(i)
Next i
Print b

因为退出For循环结束条件是 i = LBound(a) To UBound(a) 这个条件不成立了,即i=7。所以此时a(7)下标越界了

array()是默认从0开始的,你可能认为从1了 你把print i 放到循环内 你就会发现是从0到6了 (把print i 放在循环外出现7的原因是循环已经进行到了6, 下一步就得是7了)
出现下标出现下标越界的原因是array() 只定义了从a(0)到a(6)而你要 求a(7)
解决方法 在循环内 if i=6 then print a(i)
如果还有什么问题 我的qq是123186738