Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@GOTO - Sprunganweisung in Prozeduren

&pagelevel(3)&pagelevel

Mit der Anweisung @GOTO wird in einer @DO-Prozedur ein unbedingter Sprung zu der angegeben Zeile ausgeführt.

Operation

Operanden

@PROC

@GOTO

line

line

Der Operand line bezeichnet die Zeilennummer zu der gesprungen werden soll.

Die Anweisung @GOTO ist nur innerhalb von @DO-Prozeduren erlaubt. Wird @GOTO außerhalb einer @DO-Prozedur gegeben, wird dies mit der Meldung EDT4942 zurückgewiesen. In einer @INPUT-Prozedur wird nach Ausgabe der Meldung mit der Anweisung fortgesetzt, die auf die fehlerhafte @GOTO-Anweisung folgt.

Wenn line eine Zeilennummervariable ist, die zum Zeitpunkt der Ausführung des Sprungs den Wert 0.0000 hat (mit dem die Zeilennummervariablen nach Starten des EDT vorbelegt sind), wird die @GOTO-Anweisung mit der Meldung EDT4932 abgewiesen und die Prozedur mit der Anweisung fortgesetzt, die auf die fehlerhafte @GOTO-Anweisung folgt.

Die mit @GOTO angesprungene Zeile muss in der zugehörigen Prozedur existieren. Wird versucht eine Zeile anzuspringen, die nicht existiert, wird die Fehlermeldung EDT4974 ausgegeben und die Prozedur mit der Anweisung fortgesetzt, die auf die fehlerhafte @GOTO-Anweisung folgt.

Sollen in EDT-Prozeduren Zeilen über @GOTO angesprungen werden, ist es bei diesen Zeilen sinnvoll, mit der Anweisung @SET (Format 6) immer die Zeilennummer explizit festzulegen, damit sich beim Einfügen oder Löschen von Anweisungen die Nummern der anzuspringenden Zeilen nicht implizit ändern.

Hinweis

Die Verwendung symbolischer Zeilennummern ist nicht zu empfehlen, weil diese sich immer auf die aktuelle Arbeitsdatei und damit nicht auf die Prozedur-Arbeitsdatei beziehen.
Ist die erste Anweisung einer Prozedur die @PARAMS-Anweisung, so kann diese nicht mit @GOTO angesprungen werden.

Beispiel

   1.     @SET #I3 = 1 -------------------------------------------------- (1)
   1.     @PROC 3
   1.     @1 ------------------------------------------------------------ (2)
   1.     @ @IF #I3 > 5 : @RETURN --------------------------------------- (3)
   2.     @ @STATUS = #I3
   3.     @ @SET #I3 = #I3+1
   4.     @ @GOTO 1
   5.     @END
   1.     @DO 3 --------------------------------------------------------- (4)
#I03= 0000000001
#I03= 0000000002
#I03= 0000000003
#I03= 0000000004
#I03= 0000000005
   1.
(1)Der Ganzzahlvariablen #I3 wird der Wert 1 zugewiesen.
(2)Angabe der Zeilenummer für die Zeile, die über @GOTO angesprungen wird.
(3)Bei Ausführung der Prozedur in der Arbeitsdatei 3 soll der Wert, den die Ganzzahlvariable #I3 hat, solange um 1 erhöht und ausgegeben werden, bis er größer als 5 ist. Realisiert wird dies durch eine Schleife. Am Ende der Schleife wird mit @GOTO zum Schleifenanfang gesprungen.
(4)Die Prozedur in Arbeitsdatei 3 wird ausgeführt.