打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【Lua】为什么 Lua 里没有 continue

【Lua】为什么 Lua 里没有 continue

对于Lua里没有continue的问题相信很多用lua的人都遇到过,官方也有作出了解释

在Lua中,repeat until 有点类似于C++的do while,但在机制上有一点区别,在Lua的until的条件表达式中,表达式中的变量可以是repeat until代码块内声明的局部变量,但在C++中,while的条件表达式中的变量不允许出现do while内部声明的临时变量,必须是do while外部声明的变量

基于这个原因,我们假设Lua支持了continue,考虑以下代码:

local a = 1  -- outerrepeat    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 trueend
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PLC编程(ST)语言常用语句及功能简介
C语言基础——循环详解!
Step By Step(Lua迭代器和泛型for)(转)
Lua中函数的几个特别之处探究_Lua_脚本之家
Delphi中转向语句Break,Continue,Exit的作用
lua中的闭包
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服