VB中for循环初值与终值的问题
OptionBase1PrivateSubCommand1_Click()Dimaa=Array(10,20,30)Forj=1Toa(j+1)k=1k=k*jnextj...
Option Base 1
Private Sub Command1_Click()
Dim a
a = Array(10, 20, 30)
For j = 1 To a(j + 1)
k=1
k=k*j
next j
print j;k
end sub
运行结果为 11,10
第一次循环中为什么j =1作为初值后a(j+1)中j+1的值是1 而不是0呢? 展开
Private Sub Command1_Click()
Dim a
a = Array(10, 20, 30)
For j = 1 To a(j + 1)
k=1
k=k*j
next j
print j;k
end sub
运行结果为 11,10
第一次循环中为什么j =1作为初值后a(j+1)中j+1的值是1 而不是0呢? 展开
3个回答
展开全部
上面的答案正解。
总的来说,不会影响你后面的情况,还是会在1到a(2)中循环
这个没看到你定义 j,k。
应该是前面定义为integer类型,而还没给它们赋值的情况(会被系统默认赋值为0)。
刚运行到for j = 1 To a(j + 1) 的时候,j还没有被赋值,暂时还被默认为等于0,所以j+1显示是1,但是运行到k=1的位置,也就是上面已经进行赋值了,就会显示为j=1,a(j+1)=20了,并不会影响你下面其他的计算。
你可以试一下在前面赋值其他(比如-1),看是不是刚运行到for这个位置时,j 还显示为-1,运行到k=1,才变为 j=1.
如果你想要第一次一进入到for j = 1 To a(j + 1) 的时候 j 就为1,可以先在前面给j 赋值 1。
追问
好好学习了一下,谢谢!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你运行结果错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询