Lua提供了一组传统的,小巧的控制结构,包括用于条件执行的if,用于迭代的while、repeat和for。所有的控制结构都有一个现实的终止符号:if for while 都以end结尾,repeat以until作为结尾。
控制结构中的条件表达式可以使任何的值,Lua将所有false和nil的值视为“真”。
1. if then else语句
if a<0 then
a=0
end
if a<b then
return a
else
return b
end
嵌套的if,可以使用elseif
if op=="+" then
r = a+b;
elseif op=="-" then
r = a-b;
elseif op=="*" then
r = a*b;
elseif op=="/" then
r = a/b;
else
error("invalid operation")
end
2. while
i =1
while i<10 do
print(i)
i=1+1;
end
3. repeat until
until 条件为真
repeat
print(i)
i=i+1until i >10
4. 数字型for循环
语法
for exp1, exp2, exp3 do
<code>
do
exp1初始值,exp2终止值,exp3是步长。步长exp3 默认是1
for i=1,10,2 do
print(i)
end
for i=1,10 do
print(i)
end
和C、C++一样也有break语句,终止用math.huge
for i=1,math.huge do
if i>5 then
break
end
print(i)
end
4. 泛型for循环
for i,v in ipairs(tb) do
print(v)
end
Lua的基础库提供了ipairs,这是一个用于用于数组的迭代的函数。每次循环,i会被赋予一个索引的值,同时v被赋予一个对应该索引的数组元素值。