Prev | Up | ____ | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help


5.8 Goto Statements

(1)
A goto_statement specifies an explicit transfer of control from this statement to a target statement with a given label.
Syntax
(2)
       goto_statement ::= goto label_name;
Name Resolution Rules
(3)
The label_name shall resolve to denote a label; the statement with that label is the target statement.
Legality Rules
(4)
The innermost sequence_of_statements that encloses the target statement shall also enclose the goto_statement. Furthermore, if a goto_statement is enclosed by an accept_statement or a body, then the target statement shall not be outside this enclosing construct.
Dynamic Semantics
(5)
The execution of a goto_statement transfers control to the target statement, completing the execution of any compound_statement that encloses the goto_statement but does not enclose the target.

(6)
Examples
(7)
Example of a loop containing a goto statement:
(8)
       <<Sort>>
       for I in 1 .. N-1 loop
          if A(I) > A(I+1) then
             Exchange(A(I), A(I+1));
             goto Sort;
          end if;
       end loop;


Prev | Up | ____ | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help

Ada WWW Home -- Email comments, additions, corrections, gripes, kudos, etc. to:

Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12