for-loop - 在循环执行时递减循环计数器

标签 for-loop lua counter

我试图在循环运行时递减 for 循环的计数器。不幸的是,Lua 似乎不允许这样做。这段代码应该永远运行:

for i = 1, 100 do
    print (i)
    i = i - 1
end

但事实上,它只是简单地打印系列 1-100。这是设计的吗?如果是这样,我如何减少运行循环的计数器(例如,因为当前循环被取消资格并应该再次运行)?

最佳答案

这是设计使然。来自 Lua reference manual :

3.3.5 – For Statement

All three control expressions are evaluated only once, before the loop starts. They must all result in numbers.


所以修改i的值循环内部不会改变循环的运行方式。

关于for-loop - 在循环执行时递减循环计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25256037/

相关文章:

javascript - for 循环中的 if 条件 - 性能差异

java - 循环遍历二维数组(对角线)?

c - C 中的嵌套 Lua 元表

function - 通过引用调用Lua函数

assembly - pic汇编中如何计算超过255?

javascript - 如何验证 HTML 表单中至少 3 个单词?

bash循环遍历子目录中的所有查找

搜索数组以查找字符序列的 C 程序

lua - 电晕运行时错误 "attempt to concatenate field ' ?' (a nil value)"

R:带条件的向上计数器