GOTO
The GOTO
instruction transfers program control to a
labeled line within the same program block.
Syntax
GOTO [
:]
label-id
- label-id is the name of the
LABEL
statement to jump to.
Usage
A GOTO
statement continues program execution in the line
following the LABEL
instruction using the label-id identifier specified in the
GOTO
instruction.
The LABEL
jump
point can be defined before or after the GOTO
statement.
The LABEL
and GOTO
statements must use the
label-id within a single MAIN
, FUNCTION
, or REPORT
program block.
The :
colon after the GOTO
keyword is optional.
GOTO
statements can reduce the readability of your program
source and result in infinite loops. Use FOR
, WHILE
and CASE
statements
instead.
The GOTO
statement can be used in a WHENEVER
statement to handle exceptions.
Example
MAIN
DEFINE exit_code INTEGER
DEFINE l_status INTEGER
WHENEVER ANY ERROR GOTO _error
DISPLAY 1/0
GOTO _noerror
LABEL _error:
LET l_status = status
DISPLAY "The error number ", l_status, " has occurred."
DISPLAY "Description: ", err_get(l_status)
LET exit_code = -1
GOTO _exit
LABEL _noerror:
LET exit_code = 0
GOTO _exit
LABEL _exit:
EXIT PROGRAM exit_code
END MAIN