S = 'MSH, mdmOBX, TXA'
for u in string.gmatch(S, "([^,%s]+)"),1 do
l[k] = u
for a in string.gmatch(u,'.-([A-Z].*)'),1 do
g[z] = a
print(g)
_G["Map"..l[k]](Msg[g[z]],R[1])
end
_G["Map"..l[k]](Msg[l[k]],R[1])
end
我有上面的代码,我希望仅当未执行内部for循环时才执行内部循环外的语句,我尝试使用'break'关键字,但该命令不起作用,并且控制权已传递给外部循环。如何解决此问题?
goto label -- This statement goes to the jump-label label
::label:: -- The jump-label label
[在每个循环后使用检查标志变量,可以使用连续的break
语句将其设置为早期救援,这是那些担心goto
或因缺乏它而受到谴责的经典方法。
local earlyreturn for u in ... do for a in ... do if ... then earlyreturn = true break end end if earlyreturn then break end end
无论如何,您也可以将循环包装在函数中并使用return
。
function(...) for u in ... do for a in ... do if ... then return end end end end(...)
goto
语句,尽管它可能不是最佳解决方案。如何将内部循环的主体包装在if
中呢?