while:
while(条件)do
循环体
end
在条件为 true 时,让程序重复地执行 循环体。执行语句前会先检查条件是否为 true。
例:
a=0
while( a < 10 )
do
print("a 的值为:", a)
a = a+1
end
输出结果:
a的值为:0
a的值为:1
a的值为:2
a的值为:3
a的值为:4
a的值为:5
a的值为:6
a的值为:7
a的值为:8
a的值为:9
for:
1.数值型for循环重复执行指定语句,重复次数可在 for 语句中控制
for var=exp1,exp2,exp3 do
<执行体>
end
var从exp1变化到exp2,每次变化以exp3为步长递增(递减)var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1。
例:for i=1,f(x) do
print(i)
end
for i=10,1,-1 do
print(i)
end
for的三个表达式在循环开始前一次性求值,以后不再进行求值。比如上面的f(x)只会在循环开始前执行一次,其结果用在后面的循环中。
2.泛型for循环
泛型for循环通过一个迭代器函数来遍历所有值Lua 编程语言中泛型for循环语法格式:
打印数组a的所有值
for i,v in ipairs(a) do
print(v)
end
i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组
repeat...until:
重复执行循环,直到指定的条件为真时为止repeat
statements
until( condition )
1.在条件进行判断前循环体都会执行一次
2.如果条件判断语句(condition)为 false,循环会重新开始执行,直到条件判断语句(condition)为 true 才会停止执行
1.
循环嵌套:可以在循环内嵌套一个或多个循环语句(while、for、do..while)
2.
break 语句:退出当前循环或语句,并开始脚本执行紧接着的语句
3.
控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,true和非nil为真。
要注意的是Lua中 0 为 true:
例:
if(0)
then
print("0 为 true")
end
输出结果为:
0 为 true