在Lua中无限循环

时间:2016-05-26 11:20:06

标签: loops lua

为什么这不适用于lua?

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

以上循环不打印任何内容。根据我对C / C ++等传统语言的了解,上面应该是一个无限循环。 C ++等价物

for (int i = 1; i <= 100; i--) 
  cout << "Infinite";

我想知道lua中的for循环究竟是如何工作的。它与上面给出的C ++相同吗?

修改:我不想知道How to make an infinite loop in lua。我更关心的是lua中的for循环是如何工作的?

3 个答案:

答案 0 :(得分:1)

如前所述,for循环有三个函数,就像C / C ++一样。

for i = <start>, <finish>, <increment> do 

但是lua会检测到增量不允许函数结束并完全忽略这个循环 要创建无限循环,只需使用:

while true do  

在lua中,将变量作为参数放在没有运算符的情况下将检查值是否存在/是否为真。如果它是假/零,那么它将不会运行。在这种情况下,true始终为true,因为它是常量,因此循环永远存在。

while true do
     print('Infinite Loop')
end  

答案 1 :(得分:0)

如果步骤为负,则在Lua中明确定义

for以检查当前值是否低于限制。由于步骤-1为负数且当前值1从一开始就低于限制100,因此for不执行循环。

答案 2 :(得分:0)

lua中的for循环具有以下语法:

for init,max/min value, increment
do
   statement(s)
end

所以下面的代码将从1到10打印:

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

要在lua中生成无限循环,您可能必须使用while循环:

while( true )
do
   print("This loop will run forever.")
end

更多访问http://www.tutorialspoint.com/lua/lua_loops.htm