循环语句
类型 | 操作 |
---|---|
while | 条件为 true 时,让程序重复地执行某些语句 |
for | 重复执行指定语句,重复次数可在 for 语句中控制 |
repeat…until | 重复执行循环,直到指定的条件为真时为止 |
while
while(condition)
do
statements
end
a=0
while (a<5)
do
print(a)
a=a+1
end
--0
--1
--2
--3
--4
for
for var=exp1,exp2,exp3 do
<执行体>
end
var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 “执行体”。
exp3 是可选的,如果不指定,默认为1
for i=1,10,2 do
print(i)
end
--1
--3
--5
--7
--9
a={11,22,33}
for i,x in ipairs(a) do
print(i.."-"..x)
end
1-11
2-22
3-33
repeat–until
条件判断语句(condition)在循环体末尾部分,所以在条件进行判断前循环体都会执行一次。
如果条件判断语句(condition)为 false,循环会重新开始执行,直到条件判断语句(condition)为 true 才会停止执行。
repeat
statements
until( condition )
a=0
repeat
print(a)
a=a+1
until(a>3)
--0
--1
--2
--3
循环控制 | 操作 |
---|---|
break | 退出当前循环或语句,并开始脚本执行紧接着的语句 |
goto | 将控制流程无条件地转到被标记的语句处 |
break
break 语句插入在循环体中,用于退出当前循环或语句,并开始执行紧接着的语句。
如果使用循环嵌套,break语句将停止最内层循环的执行,并开始执行的外层的循环语句
a=0
while (a<10)
do
print("a="..a)
a=a+1
if (a>3)
then
break
end
end
--[[
a=0
a=1
a=2
a=3
]]--
goto
语法格式为:
goto label
label格式为:
::label::
i = 0
::s1:: do
print(i)
i = i+1
end
if i>3 then
os.exit()
end
goto s1
--0
--1
--2
--3
条件语句
if
if(布尔表达式)
then
--[ 在布尔表达式为 true 时执行的语句 --]
end
a = 0
if a then
print("0 is true")
end
--0 is true
if…else
if(布尔表达式)
then
--[ 布尔表达式为 true 时执行该语句块 --]
else
--[ 布尔表达式为 false 时执行该语句块 --]
end
a = 0
if a then
print("0 is true")
else
print("0 is false")
end
--0 is true