Lua中如何使用continue,goto continue(模拟C++ C#的continue)

Lua中模拟goto continue(模拟C++ C#的continue

介绍

在C#或者C++里面应该都见过continue,他的用法其实就是打断当前循环直接直接进入下次循环的,代码如下:

csharp 复制代码
   for (int i = 0; i < 10; i++)
   {
        if (i == 2) continue;
        Debug.Log(i);
   }

上述的打印如下:

csharp 复制代码
0
1
3
4
5
6
7
8
9

那么lua中其实是没有continue的这个语法,但是lua里面是有goto continue可以执行到某行继续执行,相当于可以指定执行顺序以及执行的语句,在lua中除了这个方法还可以用while去模拟一下continue这个语句下面是这两种方式的具体实现方法

具体方法

goto continue

这个可以指定lua代码的执行顺序以及执行语句,比continue多了一个功能可以跳转到某行执行,下面上代码看一看怎么实现

csharp 复制代码
for i = 1, 10 do
    if i == 2 then
        --这里goto 直接跳到for 的结尾 不会触发print(i)
        goto continue
    end
    logError(i)
    ::continue::
end

打印如下:

csharp 复制代码
1
3
4
5
6
7
8
9
10

while模拟continue方法

while中的break 是打断while 的方法
break 也可以打断for循环

csharp 复制代码
for i = 1, 10 do
    while true do
        if(i == 2) then break end
            logError(i)
        break
    end
end

打印如下:

csharp 复制代码
1
3
4
5
6
7
8
9
10

总结

上面两种方式是我比较常用的两种,当然你要在for、while或者repeat until中进行判定当然也是可以的,有很多方法都是可以实现的,如果有更好的方法方式可以留言说下,感谢大家的支持,希望给个免费的小心心和关注,感谢。

相关推荐
寂寞的船2 天前
【Unity知识速递】第8期 IL2CPP 托管堆内存碎片与原生堆交互机制深度解析
unity·游戏引擎·交互
寂寞的船3 天前
【Unity知识速递】第5期 Unity 6.2 深度解析:AI Assistant 登场,World Space UI 与 Sentis 全面升级
人工智能·ui·unity
寂寞的船3 天前
【Unity知识速递】第4期 MCP for Unity:用 AI 自然语言控制编辑器
人工智能·unity·编辑器
淡海水3 天前
09-04-内存-Unity原生对象生命周期
unity·c#·游戏引擎·gc
寂寞的船3 天前
【Unity知识速递】第6期 URP性能优化完全指南:从内存到GPU的三维调优
unity·性能优化·编辑器
努力努力再努力wz3 天前
【Lua进阶系列】Lua 调试机制详解:从虚拟机调用栈、错误传播到 debug 库
junit·单元测试·lua
寂寞的船3 天前
【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜
unity·c#·游戏引擎·bug
炸薯条!5 天前
博客系统测试报告
开发语言·lua
tealcwu5 天前
【Unity基础】为什么游戏需要物理按键映射?从 Unity Input Manager 到跨引擎输入设计
java·游戏·unity
tealcwu6 天前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南
3d·unity·游戏引擎