在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
对于Lua里没有continue的问题相信很多用lua的人都遇到过,官方也有作出了解释。 在Lua中,repeat until 有点类似于C++的do while,但在机制上有一点区别,在Lua的until的条件表达式中,表达式中的变量可以是repeat until代码块内声明的局部变量,但在C++中,while的条件表达式中的变量不允许出现do while内部声明的临时变量,必须是do while外部声明的变量。 基于这个原因,我们假设Lua支持了continue,考虑以下代码: local a = 1 -- outer repeat if f() then continue end local a = 1 -- inner ... until a == 0 由于continue会跳过后面local a = 1的声明,那么 until a == 0 到底是指内部的local a还是外部的a就会有歧义了! 那么如何用别的机制来代码continue呢?有一个比较简单的方法:在循环内套一个repeat ... until true,再将想用continue的地方写成break。如: for i = 1, 10 do repeat if i == 5 then break end print(i) until true end |
请发表评论