Lua中for循环如何中断?

2026-04-01 19:461阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计324个文字,预计阅读时间需要2分钟。

Lua中for循环如何中断?

以下是简化后的代码片段:

javascriptfor (k, v in temptable) { if (k.includes('doe') && v['name']===var2) { txterr=Invalid name for + k + duplicate=true; break; }}if (duplicate) { console.log(Exit due to duplicate name);}

我有以下代码:

for k, v in pairs(temptable) do if string.match(k,'doe') then if v["name"] == var2 then txterr = "Invalid name for "..k duplicate = true end if duplicate then break end end end

当duplicate设置为true时,我想一起退出for循环.现在,它只是循环遍历表中的所有值,即使它找到匹配项.

我尝试使用break语句,但我认为它突破了“if”语句.

我正在考虑做一个while循环我可以绕过整个for循环,但我仍然需要一种方法来突破for.

谢谢.

我尝试了以下方法:

temptable = {a=1, doe1={name=1}, doe2={name=2}, doe3={name=2}} var2 = 1 for k, v in pairs(temptable) do print('trying', k) if string.match(k,'doe') then print('match doe', k, v.name, var2) if v["name"] == var2 then txterr = "Invalid name for "..k duplicate = true print('found at k=', k) end if duplicate then print('breaking') break end end end

它有效:

Lua中for循环如何中断?

trying doe2 match doe doe2 2 1 trying doe1 match doe doe1 1 1 found at k= doe1 breaking

你可以看到它跳过a和doe3.因此错误在其他地方:var2或您的名字不是您的想法(如名称值是字符串而var2是数字),或者您没有任何匹配的键.

本文共计324个文字,预计阅读时间需要2分钟。

Lua中for循环如何中断?

以下是简化后的代码片段:

javascriptfor (k, v in temptable) { if (k.includes('doe') && v['name']===var2) { txterr=Invalid name for + k + duplicate=true; break; }}if (duplicate) { console.log(Exit due to duplicate name);}

我有以下代码:

for k, v in pairs(temptable) do if string.match(k,'doe') then if v["name"] == var2 then txterr = "Invalid name for "..k duplicate = true end if duplicate then break end end end

当duplicate设置为true时,我想一起退出for循环.现在,它只是循环遍历表中的所有值,即使它找到匹配项.

我尝试使用break语句,但我认为它突破了“if”语句.

我正在考虑做一个while循环我可以绕过整个for循环,但我仍然需要一种方法来突破for.

谢谢.

我尝试了以下方法:

temptable = {a=1, doe1={name=1}, doe2={name=2}, doe3={name=2}} var2 = 1 for k, v in pairs(temptable) do print('trying', k) if string.match(k,'doe') then print('match doe', k, v.name, var2) if v["name"] == var2 then txterr = "Invalid name for "..k duplicate = true print('found at k=', k) end if duplicate then print('breaking') break end end end

它有效:

Lua中for循环如何中断?

trying doe2 match doe doe2 2 1 trying doe1 match doe doe1 1 1 found at k= doe1 breaking

你可以看到它跳过a和doe3.因此错误在其他地方:var2或您的名字不是您的想法(如名称值是字符串而var2是数字),或者您没有任何匹配的键.