您的位置:首页 > 编程语言 > Lua

lua学习小结之lua循环

2017-11-15 14:40 399 查看
Lua 循环
[align=left]循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。[/align]
[align=left]循环语句是由循环体及循环的终止条件两部分组成的。如图:[/align]



Lua语言是用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。所以Lua语言的循环和其他语言很相似。
一、for循环:

可以重复执行指定语句,重复次数可在for语句中控制。

Lua中for语句跟其他语言的for类似,但是语法上有一点点区别。for循环语句在Lua语言中可分为两类:数值for循环和泛型for循环。1.数值for循环
语法格式:

for var=exp1,exp2,exp3 do
<执行体>
end


var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1。
for的三个表达式在循环开始前一次性求值,以后不再进行求值

2.泛型for循环
泛型for循环通过一个迭代器函数来遍历所有值,类似java中的foreach语句。
语法格式:
--打印数组a的所有值
for i,v in iparrs(a)
do print(v)
end

[align=left]在lua中pairs与ipairs两个迭代器的用法相近,但有一点是不一样的:[/align]
[align=left]pairs可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil;但是ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出。它只能遍历到表中出现的第一个不是整数的key。[/align]
[align=left]例如:
[/align]

Key = {1,2,3,4,nil,5,6,7,"d"}
for i,v in ipairs(Key) do
print(i,v)
end


输出结果为:

1        1
2        2
3        3
4        4

遇到 nil 的时候直接跳出循环。

二、while循环:

在条件为true时,让程序重复地执行某些语句。执行语句前会先检查条件是否为true。

语法格式:

while(condition)     #条件语句,当condition为true时执行循环体语句
do
statements      #循环体语句,可以是一条或多条语句
end

三、repeat...until循环:

重复执行循环,直到指定的语句为true时停止。


repeat...until循环语句不同于for和while循环,for和while循环的条件语句在当前循环执行开始时判断,而repeat...until循环的条件语句在当前循环结束后判断。repeat...until 循环类似于while循环,不同的是do ... while循环是保证至少执行一次。
流程图如下图所示:



语法格式:


repeat
statement(s)
until(condition)        #如果条件为false,循环重新开始执行,直到condition为true时停止循环


注意的是,条件表达式出现在循环结束,所以在循环语句(S)执行一次之前的条件进行测试。

四、嵌套循环:

可以在循环内嵌套一个或者多个循环语句(while do...end;for...do...end;repeat...until)

五、循环控制语句:

break语句(退出当前循环或语句,并开始脚本执行紧接着的语句)。

六、无线循环语句:

在循环体中如果语句永远为true,那么循环体就会一直执行下去


以while为例:
while(true)
do
print("循环将永远执行下去")
end


参考出自: http://www.runoob.com/lua/lua-loops.html
                 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua