lua支持两种for循环,分别为numeric for和generic for.
numeric for的语法
for var = exp1, exp2, exp3 do
...
end
其中var是for循环自动创建的本地变量, 所以不需要声明. 循环结束后就会抛弃掉, 所以要传出这个变量的话, 请使用全局变量来传.
exp1是初始值.
exp2是结束值.
exp3是步调, 步调可以省略, 默认是1.
三个表达式在for循环开始时执行一次, 后面就不执行了. 例如
传出本地变量的值, 使用全局变量, 或者外面的本地变量.
> x = 10
> for i=1,x,1 do
>> print(i)
>> x=1 -- 这里修改x不会影响整个循环, 因为表达式exp2在循环开始时就固话了.
>> end
1
2
3
4
5
6
7
8
9
10
传出本地变量的值, 使用全局变量, 或者外面的本地变量.
> for i=1,x,1 do
print(i)
if i>3 then out=i; break; end
end
1
2
3
4
> print(out)
4
> print(i)
nil