Lua loop

作者: AlbertS | 来源:发表于2016-06-25 15:45 被阅读311次

前言#

一种语言怎么可以少了循环(loop)这么核心的存在,试想一下没有循环语句,让你输出从1开始的是一百个数字,哇,so easy!写一百个print就好了,然而当我把数量调整为100万的时候你也许就会崩溃了,所以循环语句是非常有用的,它帮助我们完成了许多重复性操作,lua也不例外,有着自己的循环语句,语法和其他语言大致相同,但也有着自己的特点。

示例#

lua的循环语句包括几种类型:while循环、repeat循环、for循环和generic for循环,这几种循环各有各的特点,接下来让我来写个小程序来进一步感受一下各种循环语句的差异。

  • 首先我们来新建一个文件,将文件命名为loop.lua。
  • 在该文件中编写如下代码:
-- 定义一个table
local Languages = 
{
    "lua",
    "c",
    "c++",
    "java",
    "python",
}
local elementnum = table.getn(Languages);


-- while 循环
print("\nwhile loop result:")

local index = 1;
while index <= elementnum do
    print("["..index.."] = ".. Languages[index]);
    index = index + 1;
end


-- repeat 循环
print("\nrepeat loop result:")

local index = 1;
repeat
    print("["..index.."] = ".. Languages[index]);
    index = index + 1;
until index > elementnum


-- for 循环
print("\nfor loop result:")

for index = 1, elementnum do
    print("["..index.."] = ".. Languages[index]);
end


-- genneric for 循环
print("\ngenneric for loop result:")

for index,value in pairs(Languages) do
    print("["..index.."] = ".. value);
end
  • 运行结果:
loop.png

总结#

  • 由结果的截图可以知道,几种循环实现的功能是一样的。
  • table.getn()函数使用条件:只有table的索引是数字(默认为数字)时才能正确的到表中的元素个数。
  • 注意while循环和repeat循环的判断条件是相反的。
  • genneric for的另一种形式可以写为: for value in ipairs(Languages)
  • 示例中的genneric for实际上有第三个参数,不过是可选的,表示步长,默认是1,当然也可以是-1。
  • lua有一点与大多数语言不同,就是一个声明在循环体重的局部变量的作用域包括条件测试。
  • 对于上一点的一个例子:在repeat和until之间定义的局部变量可以放在until后边的条件判断。

相关文章

网友评论

    本文标题:Lua loop

    本文链接:https://www.haomeiwen.com/subject/mgradttx.html