很多情况下我们需要做一些有规律的重复操作,以此来解放我们的劳动力,让程序代替我们完成。
逻辑如图:

while循环
while(boolean)do--执行事件end
逻辑图:

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