Lua流程控制语句和作用域
回到:
语句块的类型
- if、while、for语句块
- function语句块
- do…end语句块
- repeat…until语句块
- 交互式Lua Shell中每一行可独立解释的是一个语句块
1 | --> 1.if...then...elseif...else...end |
lua中的break
break跳出当前循环语句块(即只能在repeat、while、for中使用)。
由于语法构造的特殊性,Lua的break
(以及退出函数的return
)只能是一个块的最后一一条语句,即语句块的最后一条语句,或end/else/until前的一条语句。
例如,下面的break是end前的一条语句。
1 | local i = 1 |
再例如:
1 | if ... then |
lua中的continue
Lua中没有直接提供continue功能,但是Lua支持goto,通过goto可以间接实现continue。
1 | i = 10 |
lua的作用域
local可声明局部变量。Lua中每个语句块都有自己的作用域环境,在这些语句块环境内使用local声明的变量只在对应语句块中生效,其它均为全局变量。
1 | x = 10 --> 全局变量x |
需注意的是:
- for迭代时,其控制变量为局部变量
- 函数参数也是局部变量
1 | for i = 1, 10 do print(i) end |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 骏马金龙!
评论