什么解释这段代码

来源:百度知道 编辑:UC知道 时间:2024/06/07 07:10:57
Private Sub Command1_Click()
s = 0: t = 0: u = 0
For x = 1 To 3
For y = 1 To x
For z = y To 3
s = s + 1
Next z
t = t + 1
Next y
u = u + 1
Next x
Print s; t; u

End Sub

为什么s=14,t=6,u=3

1.这是Visual Basic中的循环嵌套语句,从内层往外层来分析就清楚点:
s = 0 : t = 0 : u = 0(这句实际上是对s、t、u这3个变量赋初值,符号“:”只不过是格式上的需要,代表连续赋值的意思。)

2.明确x、y、z是每层For循环中的循环变量而已,他们在每执行一次For循环后自加1,循环结束后则没意义了;s、t、u是真正“有意义”的变量,即最后要Print出来的变量。

3.然后从最内层来看单独各层的For循环:(注意没有考虑相互影响)
For z = y To 3
s = s + 1
Next z
(由于此时,z=y=x=1,即表示这个循环从1开始到3结束,即执行3次“s=s+1”,即此时s=3)(跳出该循环,进入“中层”循环)

For y = 1 To x
(内层循环)
t = t + 1
Next y
(由于此时,y=x=1,即表示这个循环从1开始到1结束,即执行1次“t=t+1”,即此时t=1)(跳出该循环,进入“外层”循环)

For x = 1 To 3
(中层 [内层循环] 循环)
u = u + 1
Next x
(由于此时,x=1,即表示这个循环从1开始到3结束,即执行3次“u=u+1”,即此时u=3)(跳出该循环,执行print,打印出s、t、u的值)

4.实际(考虑相互影响)
上边的分析只是让你明白每层循环“单次”执行语句的情况,看上边每层循环的结构你就会明白,最外层循环执行3次意味着:中层循环要执行(1+2+3)次;内层循环要执行3+(3+2)+(3+2+1)次,即最终结果是:
(内层循环结果,即s的结果)s= [3+(3+2)+(3+2+1)] * 1 = 14
(中层循环结果,即t的结果)t=(1+2+3)* 1 = 6
(外层循环结果,即u的结果)u=(1+1+1)* 1 = 3
代码实际是对“自加”运算的循环执行,即最后的值就代表了各层循环的次数,可以认为,代码是在测试各层循环的次数。

5.知识点提醒