- An exit_statement is used to complete the execution of an enclosing loop_statement; the completion is conditional if the exit_statement includes a
exit [loop_name] [when condition];
Name Resolution Rules
- The loop_name, if any, in an exit_statement shall resolve to denote a
- Each exit_statement applies to a loop_statement; this is the loop_statement being exited. An exit_statement with a name is only allowed within
the loop_statement denoted by the name, and applies to that loop_statement.
An exit_statement without a name is only allowed within a loop_statement, and
applies to the innermost enclosing one. An exit_statement that applies to a
given loop_statement shall not appear within a body or accept_statement, if
this construct is itself enclosed by the given loop_statement.
- For the execution of an exit_statement, the condition, if present, is
first evaluated. If the value of the condition is True, or if there is no
condition, a transfer of control is done to complete the loop_statement. If
the value of the condition is False, no transfer of control takes place.
(9) Several nested loops can be exited by an exit_statement that names
the outer loop.
- Examples of loops with exit statements:
for N in 1 .. Max_Num_Items loop
exit when New_Item = Terminal_Item;
-- initial statements
exit Main_Cycle when Found;
-- final statements
end loop Main_Cycle;
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Page last generated: 95-03-12