【发布时间】:2015-06-28 21:53:28
【问题描述】:
谁能解释一下?
for i = 1, 5 do
print(i)
i = i - 1
print(i)
end
输出是:
1
0
2
1
3
2
and so forth
我希望 i 在 1 和 0 之间变化。但显然它一直在增加,就好像我根本没有改变它一样。怎么回事?
我必须时不时地删除第 i 个表格元素。所以下一个要处理的元素将是 i 再次。在 C 语言中,我会在循环内容的末尾写上 --i 。 lua中的任何官方方式? :)
【问题讨论】:
-
不要使用循环控制变量。使用其他条件(即使是手动中断条件始终为真的条件)。
-
您还可以跟踪差异:
local d=0; for/do i=i-d; if/then d=d+1 end ... end。