I have a very simple suggestion for breaking out of nested loops.

Currently, there are a few ways of breaking out of multiple nested loops but they all have unnecessary drawbacks:
- exceptions (performance penalty, complexity)
- using boolean flags that are checked in every iteration (performance hit) - goto (ugly, generally frowned apon, although this is often cited as one of the few cases where using goto is actually acceptable, which says a lot about the lack of other options)

I propose an extremely simple solution that is probably very easy to implement in compilers:

break break; // breaks out of two loops
break break break; // breaks out of three loops
break break continue; // jumps to the end of the third enclosing loop

You might also introduce a shorthand version for breaking out of a whole lot of loops:
break 5; // breaks out of 5 loops

And, why not,
break 5 continue; // jumps to the end of the sixth enclosing loop

What do you think?

Reply via email to