VB中for循环初值与终值的问题

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呢?

哥哥你的执行结果不太对吧!
执行结果是21,20

Option Base 1

有上面的话,数组从1开始
所以a(j + 1) =20
执行完后j =21, 跳出循环
k=20追问

弟弟,没错,我上机又试了一次,要不你再看看

追答

嗯,是我考虑的不足,错了,提问者采纳的是正解!
学习了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-29

    上面的答案正解。

    总的来说,不会影响你后面的情况,还是会在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。

追问

好好学习了一下,谢谢!

本回答被提问者采纳
第2个回答  2013-03-29
你运行结果错了

vb中一个简单for循环的问题
For 循环变量=初值 To 终值 [Step 步长][语句]Next[循环变量]当步长缺省时,缺省值为1。在Visual Basic中For循环属于“先检查后执行”语句,这种语句的执行过程:当步长为正,“循环变量”首先取得“初值”,检查是否超过“终值”,如果超过就一次也不执行而跳出循环。如果没有超过就执行循环体内的语句...

VB For 循环语句的用法
For循环的格式: For 循环变量 = 初值 To 终值 [Step 步长] [循环体] Next [循环变量] 注意: 1) 当步长 0 时 循环执行的条件:循环变量 = 终值 2) 当步长 0 时 循环执行的条件:循环变量 = 终值 强行退出 For 循环,请使用 Exit For。举例 举例1: 单击命令按钮 Command1 后,先后弹出...

VB中FOR循环STEP的问题
(1)s = 0,给s设初值0 (2)For i = 1 To 5,第一次执行这一句时,对i设初值1,以后每次执行这一句时都判断i的值是否介于初值和终值之间,也就是在1和5之间,如果在这个范围之内,就执行下一句,如果超出这个范围,就去执行next i后面的那一句了。——楼主所提的问题,这一句话是第一个...

VB中循环语句的循环值如何计算
当步长为正数时: 循环变量的值=n+步长(直到循环变量的值大于终值时才停止循环),其中n是由初值往终值方向递增。 举例1 for i=2 to 6 step 2 print i next i 上面的for循环是这样执行的 <1> 第一次循环:i=2 所以第一次循环结束后i的值等于2 然后检查...

VB中循环语句的循环值如何计算
当步长为正数时:循环变量的值=n+步长(直到循环变量的值大于终值时才停止循环),其中n是由初值往终值方向递增。举例1 for i=2 to 6 step 2 print i next i 上面的for循环是这样执行的 <1> 第一次循环:i=2 所以第一次循环结束后i的值等于2 然后检查循环变量是否大于终值,如果不大于就继续...

vb 中for循环 在循环体中给循环变量赋值,会改变循环次数吗
会的。For 变量 = 初值 To 终值 Step 步长 '在循环体内修改循环变量的值,将会直接改变循环次数 '但是,初值、终值、步长则不会受循环体内修改的影响 '也就是说即使你在循环体内修改这些值,它们也仍然保持循环开始时的值不变Next

vb循环语句中,初值、终值和步长为小数,怎么计算循环次数?
((终止值-初值)除以步长)+1 不管是小数 还是整数都是如此来计算循环次数 只不过小数需要考虑四舍五入的问题 就比如你图中的for i = 1 to 1.5 step 0.1 来说 当i=1.5的时候 i会被四舍五入成2 直接跳出循环

VB for 循环问题 细节 请进来看
你应该是 for i=1 to -1 step-1 next i 步长应该是-1,因为你的结束值比初始值要小

VB中循环计数的问题!送10分!
for循环正常完成后,循环变量是比终值多出一个步长。在这里终值是20,步长是1(默认),所以循环之后n就是21

求语句结果 vb for语句和循环过程
由于For循环的步长(Step)是-1,所以这是个递减的循环,但是循环初值1已经小于终值5,所以这个循环实际上是不会执行的(但是循环变量K仍然会被赋初值为1),这时候Y=3,K=1,所以答案是A

相似回答