很多情况下我们需要做一些有规律的重复操作,以此来解放我们的劳动力,让程序代替我们完成。
逻辑如图:
while循环
while(boolean)
do
--执行事件
end
逻辑图:
for循环
for var=vap1,vap2,vap3 do
--执行事件
end
循环1-10:
for i=1,f(x) do
print(i)
end
倒序循环1-10:
for i=10,1,-1 do
print(i)
end
泛型for循环
泛型 for 循环通过一个迭代器函数来遍历所有值,常常用来遍历table表
--打印数组a的所有值
a = {"one", "two", "three"}
for k, v in ipairs(a) do
print(k, v)
end
repeat…until循环
我们注意到循环条件判断语句(condition)在循环体末尾部分,所以在条件进行判断前循环体都会执行一次。
repeat
--执行事件
until( boolean )
示例:
a = 10
repeat
print(a)
a = a + 1
until( a > 15 )
--[[
输出:
10
11
12
13
14
15
]]
值得注意的是在条件进行判断前循环体都会执行一次
a = 10
repeat
print(a)
a = a + 1
until( a > 9 )
--[[
输出:
11
]]
循环控制
break
break 语句插入在循环体中,用于退出当前循环或语句 如果你使用循环嵌套,break语句将停止最内层循环的执行,并开始执行的外层的循环语句。
a = 10
while( a < 20 )
do
print(a)
a=a+1
if( a > 15)
then
break
end
end
--[[
输出:
10
11
12
13
14
15
]]
goto
goto 语句允许将控制流程无条件地转到被标记的语句处
--语法格式
goto Label
--Label格式
:: Label ::
简单使用:
lable 中设置多个语句:
local a = 1
::label:: print("goto label")
a = a+1
if a < 3 then
goto label -- a 小于 3 的时候跳转到label
end
实现 continue:
i = 0
::s1:: do
print(i)
i = i+1
end
if i>3 then
os.exit() -- i 大于 3 时退出
end
goto s1
for i=1, 3 do
if i <= 2 then
print(i, "yes continue")
goto continue
end
print(i, " no continue")
::continue::
print([[i'm end]])
end