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
        ...
           goto continue;
        ...
     <<continue>> null;
    end 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]