为什么嵌套for-next循环会产生奇怪的结果

时间:2014-02-03 02:14:44

标签: lua corona

我对我的嵌套for-next循环结果感到困惑。我的问题是计算机如何读取此函数并得出这个结果。我理解它读起来,但这会给我1,4,2,3,3,2,1的结果。我的结果是错误的,我不明白计算机是如何获得真实结果的。

当你有:     对于outsideloop = 1,3,1     打印(外环)     端

打印出1,2,3

当你有:     for insideloop = 4,1,-1 do - inside loop     打印(insideloop)     端

现在当你将内部循环嵌套在外部循环中时,你得到:

for outsideloop = 1, 3, 1 do -- outside loop

print (outsideloop)

for insideloop = 4, 1, -1 do -- inside loop

    print (insideloop)
end
end

结果为1,4,3,2,1,2,4,3,2,1,3,4,3,2,1

最后的结果是我的困惑。有人可以解决我的困惑。

2 个答案:

答案 0 :(得分:4)

这是您的计划的修改版本,可能会澄清正在发生的事情。我修改了你的程序,因此内循环打印的数字是缩进的。

#!/usr/bin/lua

for outsideloop = 1, 3, 1 do -- outside loop
    print (outsideloop)
    for insideloop = 4, 1, -1 do -- inside loop
        print ("", insideloop)
    end end

输出结果为:

1
        4
        3
        2
        1
2
        4
        3
        2
        1
3
        4
        3
        2
        1

外圈打印的数字依次为123

内循环打印的数字依次为4321 - 并且内循环执行3次,每次迭代外循环一次。

答案 1 :(得分:3)

输出正确。

  1. outsideloop以值1
  2. 开始第一次迭代
  3. 打印外环,因此打印1
  4. 内圈开始的第一次迭代,得到4
  5. 打印内环,因此打印4
  6. 内部循环的第二次迭代开始,即3
  7. 打印内环,因此打印3
  8. 并且insideloop继续打印2和1
  9. outsideloop的第二次迭代从2开始
  10. 打印外环,因此打印2
  11. insideloop再次运行,一直打印4到1(步骤3到7)
  12. 外环开始的第三次迭代
  13. 打印外环,因此打印3
  14. insideloop再次运行
  15. 希望我能帮忙!