During the Ada 9X process, we did investigate adding an exit-from-block
capability. Given that you could pretty easily implement "continue"
by simply exiting from a block containing the entire loop body.
However, to remain upward compatible, we had to create somewhat
non-intuitive rules. In particular, an unnamed exit would always
be interpreted as an exit-innermost-loop, whereas a named exit
would be allowed to exit a named block or a named loop.
Probably better would have been to have a new reserved word
(or some delightful combination of existing reserved words like
"goto end <identifier>;").
In any case, the cost/benefit ratio did not seem to justify such
clever creativity at the time. A "structured" goto is always
available if you really need it. E.g.:
while ... loop
Though I use various "handy" features when coding C (like "continue"
and the dreaded "hopefully-intentional-fall-through-to-next-switch-
alternative"), surprisingly I don't notice their lack when coding
in Ada. I suppose my mind adjusts automatically to the language
in which I am writing and finds other appropriate ways
to solve a given flow-of-control problem.
-Tucker Taft [log in to unmask]