Funktion
Mit Hilfe der GO TO-Anweisung wird der Programmablauf am angegebenen Sprungziel fortgesetzt.
Format 1 Format 2 | der GO TO-Anweisung verzweigt zu einer bestimmten Prozedur. der GO TO-Anweisung verzweigt zu einer von mehreren bestimmten Prozeduren, abhängig vom Wert eines Datenfeldes. |
Format 1
GO TO
[
prozedurname
]
Syntaxregeln
Falls die GO TO-Anweisung in einer durchgehenden Folge von unbedingten Anweisungen innerhalb eines Programmsatzes vorkommt, muss sie als letzte Anweisung in diesem Programmsatz erscheinen.
Einer GO TO-Anweisung, auf die sich eine ALTER-Anweisung bezieht, muss ein Paragrafenname vorangehen, und sie muss die einzige Anweisung in diesem Paragrafen sein (siehe „ALTER-Anweisung").
Einer GO TO-Anweisung ohne Angabe von prozedurname muss ein Paragrafenname vorausgehen, und sie muss die einzige Anweisung in diesem Paragrafen sein.
Allgemeine Regeln
Wird eine GO TO-Anweisung ausgeführt, so wird der Ablauf bei prozedurname fortgesetzt.
Wenn prozedurname nicht angegeben ist, muss eine ALTER-Anweisung, die sich auf die GO TO-Anweisung bezieht, vor der GO TO-Anweisung ausgeführt sein.
Die GO TO-Anweisung ohne Angabe von prozedurname muss durch eine ALTER-Anweisung mit einem Sprungziel versehen werden. Ist dies nicht der Fall, wird das Programm mit der Fehlermeldung 9142 abgebrochen.
Beispiel 8-40
GO TO ENDE-ROUTINE. ... ENDE-ROUTINE. CLOSE KARTEN-DATEI, DRUCK-DATEI. STOP RUN.
In diesem Beispiel verzweigt die GO TO-Anweisung zu der Prozedur ENDE-ROUTINE; die CLOSE-Anweisung wird direkt im Anschluss an die GO TO-Anweisung ausgeführt.
Format 2
GO TO {prozedurname-1}...
DEPENDING ON bezeichner
Syntaxregel
bezeichner ist der Name eines als ganzzahlig beschriebenen numerischen Datenelements. Das Datenformat muss entweder DISPLAY, COMPUTATIONAL, COMPUTATIONAL-5, BINARY, COMPUTATIONAL-3 oder PACKED-DECIMAL sein.
Allgemeine Regel
Wenn eine GO TO-Anweisung ausgeführt wird, wird der Ablauf bei prozedurname-1... fortgesetzt, entsprechend dem Wert des bezeichners, der 1, 2, ... n betragen kann.
Falls der Bezeichner einen anderen Wert als 1, 2, ... n hat, findet keine Verzweigung statt und der Ablauf wird bei der nächsten Anweisung in der normalen Ablauffolge fortgesetzt (n stellt die angegebene Anzahl von Prozedurnamen dar).
Beispiel 8-41
77 A PICTURE 9. ... MOVE 3 TO A. ... GO TO X-PAR Y-PAR Z-PAR DEPENDING ON A.
Da zum Zeitpunkt der Ausführung der GO TO-Anweisung der Wert von A 3 beträgt, wird der Ablauf bei Z-PAR, dem dritten Prozedurnamen der Reihe, fortgesetzt.