ON ... GOSUB

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » O » ON ... GOSUB

Syntax: ON Ausdruck GOSUB label1[, label2 [, ...] ]
Typ: Anweisung
Kategorie: Programmorganisation

ON...GOSUB verzweigt zu verschiedenen Labels, abhängig vom Wert des Ausdrucks.

Ist der Wert von 'Ausdruck' gleich 1, wird zum ersten Label verzweigt, ist er gleich 2, zum zweiten, und so fort. Ist der Wert von 'Ausdruck' kleiner als 1 oder größer als die Anzahl der Labels, so wird das Programm mit der Anweisung nach ON...GOSUB fortgesetzt. Da der Sprung durch GOSUB durchgeführt wurde, kann anschließend mit RETURN wieder zur Zeile nach dem ON...GOSUB zurückgesprungen werden.

ON...GOSUB steht nur in den Dialektformen -lang fblite oder -lang qb zur Verfügung. Es sollte durch SELECT CASE, evtl. in Verbindung mit SUB, ersetzt werden.

Beispiel:

#LANG "fblite"
OPTION GOSUB
DIM AS INTEGER wahl = 3
ON wahl GOSUB labelA, labelB, labelC
PRINT "Good bye."
SLEEP
END

labelA:
PRINT "Wahl A"
RETURN

labelB:
PRINT "Wahl B"
RETURN

labelC:
PRINT "Wahl C"
RETURN


Ausgabe:

Wahl C
Good bye.

Unterschiede zu QB:
FreeBASIC erzeugt keinen Laufzeitfehler, wenn 'Ausdruck' negativ oder größer als 255 ist.

Unterschiede unter den FB-Dialektformen:

Siehe auch:
ON...GOTO, GOSUB, RETURN, GOTO, SELECT CASE