多层循环

来源:百度知道 编辑:UC知道 时间:2024/06/20 07:12:54
Private Sub Form_Click()
Dim i, j, k, x As Long
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
而我预期的结果为4啊
我的预计顺序是:
i=1
把数值4赋给x
j=1
把数值3赋给x
(此处的x由原来的4变为3)
k=1
把3+6=9赋给x(此时x的值为9)
k=2时
把15赋给x(此时x的值为15,至此k层循环结束,进入j层循环)
j=2
把把数值3赋给x
(此处的x由原来的15变为3)
j=3亦是如j=2
至此j层循环结束进入i层循环
一如j层循环
x的值始终被赋为4
得到最终结果4
为什么我这样理解是错误的?

对每一个i,都要进行j和k的循环,对j的循环,x的值是3,但对k循环,x的值就是15。你的代码就是这么执行的,肯定没错,如果和你的预期不一样,只能说明你的代码不对。即使你把k循环去了,出来的结果也是3,仍然不是你的预期。

这个多重循环,其实只有最里面的一层起了作用
你的意图是对X进行计算
在每次进入最里层循环之前,都对X进行了重新赋值,为3
而最里的循环,只循环了两次,每次对X进行=6
所以,结果就是3+6+6=15

调试一下,照着过程看过去不就知道了,还要问,跟你说个清楚,1000字吧。