关于vb的一道题
dimaa=array(1,2,3,4,5,6,7)fori=Lbound(a)ToUbound(a)a(i)=a(i)*a(i)nextiprinta(i)输出的结果是...
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)
输出的结果是 程序出错(下标越界)。为什么呢?求 高手能帮我详细讲解?感激不尽 展开
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)
输出的结果是 程序出错(下标越界)。为什么呢?求 高手能帮我详细讲解?感激不尽 展开
展开全部
Lbound(a)=0,陪滚Ubound(a)=6,第七次执芦带余行a(6)=a(6)*a(6)之后执行next i,则相当于i=i+1,即此时i=7,而之后print a(i),即a(7),但是数行迅组最后一个是a(6),所以下标越界。
更多追问追答
追问
“第七次执行a(6)=a(6)*a(6)之后执行next i,则相当于i=i+1 “ 这句话怎么理解?是i 总比a(i)多1的意思吗? i 是什么意思?a(i)又是什么意思呢?
追答
next i 的作用相当于i=i+步长,这里步长是1,即相当于i=i+1。
例如for i = 1 to 5 step 2……next i,第一次执行时,i=1,第二次循环时,i=3,这里i的变化就是next在起作用,(此处i=i+2)
所以在你的代码中,最后i=Ubound(a)+1=7,所以下标越界。
我表达能力有点差,如果不明白请继续追问。
展开全部
你在
for i=Lbound(a)To Ubound(a)
前面输入掘颤尺print Lbound(a)
print Ubound(a)
就会判高知洞首道为什么了
for i=Lbound(a)To Ubound(a)
前面输入掘颤尺print Lbound(a)
print Ubound(a)
就会判高知洞首道为什么了
追问
输出了
0
6
但是是什么意思呢?是下表上界为0,下界为6的意思吗?i 是什么意思呢?a(i)又是什么意思呢?
追答
是,i经过
for i=Lbound(a)To Ubound(a)
a(i)=a(i)*a(i)
next i
后i=7了,那么print a(i),实际上就是print a(7),下标超界了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询