Labeled Statements
Statements can be prefixed with a named label, so that they can be referenced and jumped to from other parts of the same method body. This is particular helpful for terminating nested loops via the break
or continue
statements.
The label can be any unique identifier, and must be separated from the statement with a colon:
method LoopTheSquare;
begin
XLoop: for x := 0 to Width-1 do begin
YLoop: for x := 0 to Width-1 do begin
if value[x,y] > 200 then break XLoop; // breaks out of the outer loop
if value[x,y] > 100 then break; // breaks the inner YLoop
end;
end;
end;
While not officially supported or encouraged, labeled statements can also be jumped to via the goto
keyword.
Due to possible ambiguity with the colon operator, labels cannot prefix a statement that starts with an identifier (such as for example a method call). They can be followed by any keyword-based statement, including a begin
/end
, or by a semicolon.
See Also
- Flow Control Statements
break
Statementcontinue
Statementgoto
Statement