Lua学习(3)——控制结构

时间:2022-06-01 17:00:56

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被赋予一个对应该索引的数组元素值。