Lua 循环

Lua语言
是用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。所以Lua语言的循环和其他语言很相似。
一、for循环:
可以重复执行指定语句,重复次数可在for语句中控制。
Lua中for语句跟其他语言的for类似,但是语法上有一点点区别。for循环语句在Lua语言中可分为两类:数值for循环和泛型for循环。
1.数值for循环
语法格式:
var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1。
for的三个表达式在循环开始前一次性求值,以后不再进行求值
2.泛型for循环
泛型for循环通过一个迭代器函数来遍历所有值,类似java中的foreach语句。
语法格式:
二、while循环:
在条件为true时,让程序重复地执行某些语句。执行语句前会先检查条件是否为true。
语法格式:
三、repeat...until循环:
重复执行循环,直到指定的语句为true时停止。
repeat...until循环语句不同于for和while循环,for和while循环的条件语句在当前循环执行开始时判断,而repeat...until循环的条件语句在当前循环结束后判断。repeat...until 循环类似于while循环,不同的是do ... while循环是保证至少执行一次。
流程图如下图所示:
注意的是,条件表达式出现在循环结束,所以在循环语句(S)执行一次之前的条件进行测试。
四、嵌套循环:
可以在循环内嵌套一个或者多个循环语句(while do...end;for...do...end;repeat...until)
五、循环控制语句:
break语句(退出当前循环或语句,并开始脚本执行紧接着的语句)。
六、无线循环语句:
在循环体中如果语句永远为true,那么循环体就会一直执行下去。
以while为例:
循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。
循环语句是由循环体及循环的终止条件两部分组成的。如图:
一、for循环:
可以重复执行指定语句,重复次数可在for语句中控制。
Lua中for语句跟其他语言的for类似,但是语法上有一点点区别。for循环语句在Lua语言中可分为两类:数值for循环和泛型for循环。
1.数值for循环
语法格式:
for var=exp1,exp2,exp3 do <执行体> end
for的三个表达式在循环开始前一次性求值,以后不再进行求值
2.泛型for循环
泛型for循环通过一个迭代器函数来遍历所有值,类似java中的foreach语句。
语法格式:
--打印数组a的所有值
for i,v in iparrs(a)
do print(v)
end
在lua中pairs与ipairs两个迭代器的用法相近,但有一点是不一样的:
pairs可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil;但是ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出。它只能遍历到表中出现的第一个不是整数的key。
例如:
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