You might add just why some people don't like them: At their core, they are jumps, i.e., gotos in disguise, with all the problems that come with gotos. The problems are somewhat restricted because the possible jump targets are restricted (beginning of loop, or past the loop only) -- but they are there, in particular if you scatter multiple instances through the loop: bad readability/loss of structure/surprising control flows and problems with resource management (the "goto" potentially skips cleanup code in the loop, similar to scattered returns).
↧