while语句
语法:
while ( 条件判断 ) do
循环的语句块
end
打印1到10
【注】在Lua中没有+=操作
repeat-until语句
repeat
语句;
until (条件判断);
for语句
1. 数值for循环
第一,数值for循环:exp3可以省略默认为1
for var=exp1,exp2,exp3 do
loop-part
end
for将用exp3作为step从exp1(初始值)到exp2(终止值),执行loop-part。其中exp3可以省略,默认step=1
for i=0,10,2 do
print(i);
end
有几点需要注意:
三个表达式只会被计算一次,并且是在循环开始前。
for i=1,f(x) do --f(x)只会在循环前被调用一次。 print(i) end
控制变量var是局部变量自动被声明,并且只在循环内有效.
for i=1,10 do -- i是局部变量,只在语句块内有效 print(i) end max = i print(max) --> nil
循环过程中不要改变控制变量的值,那样做的结果是不可预知的。如果要退出循环,使用break语句。
for i=1,10 do print(i) i = 1 --这样的情况将会产生不可预知的结果 --break end
2. 范型for循环
第二,范型for循环: for i, v in ipairs(a) do print(v) end -- print all values of array 'a' 范型for遍历迭代子函数返回的每一个值。 例:t = {"Monday","Tuesday", "Wednesday","Thursday", "Friday","Saturday","Sunday"} for i,v in ipairs(t) do print(i,v) end for k in pairs(t) do print(k) end -- print all keys of table 't‘ 例: w = {4, 5, 6} for v in pairs(w) do print(v) end 范型for和数值for有两点相同: 1) 控制变量是局部变量 2) 不要修改控制变量的值
break和return语句
break 和return语句
break 语句用来退出当前循环(for,repeat, while)。在循环外面不可以使用。
return 用来从函数返回结果,当一个函数自然结束结尾会有一个默认的return。