郴州公共资源交易网:请教一道VB中FOR循环的问题,帮帮帮我~~

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 14:19:20
For k1=0 to 4
y=20
For k2=0 to 3
y=10
For k3=0 to 2
y=y+10
Next k3
Next k2
Next k1
Print y
求输出的结果是多少,答案是40,但我不知道为什么,怎么得出这个结果的,知道的人麻烦解答一下,谢谢!!辛苦各位了!!

要弄明白这个问题,首先要搞清楚for循环的过程,实现从最内层的循环开始的,也就是说,当循环进行嵌套的时候,总是内层的全部循环完成的时候再开始循环他的父层。就本题的循环过程是这样的:
首先将k1赋值0,也就是从0开始循环,然后执行下面的y=20,这时候进入第二个循环,将k2赋值为0,再执行下一句y=10,记住了:这个时候y=10,前面的y=20已经被覆盖了。然后进入最内层的循环,将0赋给k3,在执行循环体内的语句y=y+10,也就是y=10+10=20,这时候的y已经成为20了,再进行下一个循环,(for循环的特性是没执行一次,循环变量加1)k3=1,y=y+10=20+10=30,再一次循环,k3=2,y=y+10=30+10=40,再一次,k3=3,判断3>2,跳出循环体,返回上一级循环,k2=1,再一次执行y=10,这时候的y又等于10了,然后再次执行For k3=0 to 2,y=y+10,Next k3里面的内容,执行完以后y=40,再一次的返回,一直到k2=4的时候,判断得到4>3,跳出循环体,执行第一级循环,(这个时候y=40),k1=1,然后再一次地按照上面的循环步骤执行一次,一直到k1=4的时候,执行完内部的全部循环得到y=40,然后k1=5,判断得到5>4,停止循环,执行最后一句,y的最终输出值为40(Print y在循环体外)。这么说有点罗嗦,不过不麻烦,只要弄清了每一次的循环y的赋值情况就很好理解了,其实这种练习,只看一次循环就知道结果了,不知道这么解释你还满意么。(有点罗嗦了)