[lua]解释一下这段代码为什么能够工作(嵌套循环)

    j = 5
for i = 1,5 do
for j = 2,5,4 do
print(i*j)
end
end

当程序输出时,我很困惑为什么会打印出这些内容,尽管我尝试了很多次,我仍无法理解它的工作原理。如果你能理解,麻烦给我一些帮助。

输出:2,4,6,8,10

原文链接 https://stackoverflow.com/questions/69157229

点赞
stackoverflow用户1442917
stackoverflow用户1442917

我不确定哪部分令人困惑:外部循环执行了5次,将1..5赋予i,而内部循环每次只执行一次,将2赋予j(因为该循环的第二次迭代会将2+4 [因为4是循环的步长]赋给j,这比5大,所以循环被中止),因此输出为1*22*23*24*25*2

在循环外将j赋值为5是完全不相关的,因为循环变量具有自己的作用域,因此任何具有相同名称的变量都会被遮蔽(在循环内不可用,但其值会保留)。

2021-09-13 04:52:02