--[[lua闭包实现continue,lua的循环没有continue关键字,好多人都用while true加break的方式来实现continue,但while true如果用不好,粗心大意陷入死循环就尴尬了。以下是闭包方式实现]]
for i=0,5 do
(function()
if i==1 then
return
end
print(i)
end)()
end
--最终打印0 2 3 4 5跳过了1
--还可以写成
for i=0,5 do
local j = function()
if i==1 then
return
end
print(i)
end
j()
end
--而大多数人用while true的方式实现continue是这样写的:
for i=0,5 do
while true do
if i==1 then
break
end
print(i)
break
end
end
--用while true的风险在于,需要至少两个break,因为粗心大意少写容易导致死循环的问题