VB FOR循环菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 06:03:37
Private Sub Command1_Click()
For i = 1 To 4
x = 4
For j = 1 To 3
x = 3
For k = 1 To 2
x = x + 6
Next k
Next j
Next i
Print x
End Sub

答案为什么是15????请详细说明谢谢!

在第一层循环,你的x始终是等于4,所以相当于没循环一样,就等价于给x赋值4
所以原程序等价于:
x = 4
For j = 1 To 3
x = 3
For k = 1 To 2
x = x + 6
Next k
Next j
同理,第二层循环x也是定植,所以也相当于给x赋值,所以源程序等价于:
x = 4
x = 3
For k = 1 To 2
x = x + 6
Next k
根据赋值原理,变量等于后赋的值,x=4相当于没写一样,所以有简化一下:
x = 3
For k = 1 To 2
x = x + 6
Next k
这个循环,你该明白了吧,它的值就是15

因为你要记住VB 总是先执行内循环再执行外循环,所以不管怎么样,最终决定结果的就是内循环,
x = 3
For k = 1 To 2
x = x + 6

3+6+6=15
所以结果是15呀。

这个嵌套FOR循环的外两层都可以忽略,因为根本没有起什么实际的效果,只是把变量x进行了赋值。
所以外两层的循环都可以只算一次,把代码简化如下:
x=4 '没有意义的赋值。
x=3 '初始化x为3
For k = 1 To 2
x = x + 6
Next k
在k循环中,第一次循环x的值为3,所以x=x+6,得到x=9
k循环的第二次,x值为9,再一次x=x+6,得到x=9+6=15。

For i = 1 To 4
x = 4
没有用 因为后面的循环又附值了

从第2层循环开始x=3然后进行第三层循环第一次x=3+6 第二次x=9+6
然后又到第2层循环的第2次x又等于3(覆盖以前的值了)又来x=3+6 第二次x=9+6
所以第2层就是个附值第三层就是个