Lua has `goto` since 5.2; you don't need a continue keyword. e.g.
for z=1,10 do
for y=1,10 do
for x=1,10 do
if x^2 + y^2 == z^2 then
print('found a Pythagorean triple:', x, y, z)
print('now trying next z...')
goto zcontinue
end
end
end
::zcontinue::
end
That's nicer than continue really (as someone who doesn't know and has never written Lua) - works for whichever level of nested loops like that that you want, and allows/somewhat forces you to come up with a name that might be clearer what it's for.
Comments
Jesus, what a disgustingly clever hack!
I wonder if we could use a similar mechanism to finally add a "continue" to Lua.
Lua has `goto` since 5.2; you don't need a continue keyword. e.g.
That's nicer than continue really (as someone who doesn't know and has never written Lua) - works for whichever level of nested loops like that that you want, and allows/somewhat forces you to come up with a name that might be clearer what it's for.
In Perl, "next" can take a label:
Similar in Java (it is called "break", and the optional label is written the same way), although I'd guess most Java developers don't know about it.
I know we can do that, but I still want continue ;)
It's truly a thing of beauty. I can't wait to test what happens when you put labels or gotos in expressions...
Yeah, you can patch calls to continue() to instead be jumps.