Dim a, i% a=array(1,2,3,4,5,6,7) For i =Lbound(a) to Ubound(

Dim a, i% 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)
下标越界了,为什么啊
奔跑的蔷薇 1年前 已收到1个回答 举报

忧伤也是美丽 花朵

共回答了19个问题采纳率:89.5% 举报

你定义的变量a是一个变量,应该定义成数组啊. 另外要考虑a(0)的问题,你是想使用a(0)~a(6)这七个分量还是想使用a(1)~a(7)这七个分量.

1年前 追问

3

奔跑的蔷薇 举报

a 已经是一个可变数组了啊,而且是用内部函数Lbound(a) 、 Ubound(a) 来获取下标的下上界的啊,怎么会越界?

举报 忧伤也是美丽

下标越界的原因是由于i是循环变量,当执行完For i=Lbound(a) to Ubound(a)循环后,i的值应该是Ubound(a)+1,也就是7,而你所定义的数组下标只是从0到6,所以在最后一个print a(i)时,找不到a(7),自然就越界了。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 1.443 s. - webmaster@yulucn.com