跳到主要内容

流程控制

指令符号说明
if…then…else…endif条件判断指令。从上到下依次判断条件是否成立,如果某个判断为true,执行完对应的代码块,后面的条件判断直接忽略,不再执行
while…do…endwhile循环控制指令。在条件为 true 时,让程序重复地执行某些语句。执行语
for…do…endfor循环控制指令,重复执行指定语句,重复次数可在 for 语句中控制
repeat… until()repeat循环控制指令。重复执行循环,直到 指定的条件为真时为止
示例:

if条件判断指令

if后的括号内为条件表达式,表达式的结果可以是任何值,Lua 把 false 和 nil 看作是假,其他的都为真,数字 0 也是真。表达式为真时,执行then语句块;表达式为假时,如果有else语句块,执行else语句块,否则直接执行end之后的语句。

if语句可嵌套使用,下面是一个典型示例。

a = 100;
b = 200;
--[ 检查条件 --]
if(a == 100)
then
--[if条件为true时执行以下if条件判断--]
if(b == 200)
then
--[if条件为true时执行该语句块--]
print("a 的值为:", a ) -- a 的值为:100
print("b 的值为:", b ) -- b 的值为:200
end
else
--[第一个if条件为false时执行以下语句块--]
print("a不等于100")
end

while循环控制指令

while后的括号内为条件表达式,为真时执行do语句块,然后重新判断条件;为假时直接执行end之后的语句。

示例:

a=10
while( a < 20 )
do
print("a 的值为:", a) -- 执行10次,输出值为10到19
a = a+1
end

for循环控制指令

for循环的语法格式如下:

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

变量var的起始值为exp1,每次执行一次<执行体>后var递增exp3(exp3的值可以为负,也可不指定,默认值为1),直至var大于exp2。

示例:

for i=10,1,-1 do
print(i) -- 执行10次,输出值为10到1
end

repeat循环控制指令

repeat循环与while循环类似,主要区别在于while是执行要循环的语句前先判断条件,条件为真时进行循环;repeat是在执行完要循环的语句后再判断条件,条件为假时进行循环。

示例:

a = 10
repeat
print("a的值为:", a) -- 执行5次,输出值为10到15
a = a + 1
until(a > 15)