Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - ON ... GOSUB

Referenz-Navigation

 

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

ON...GOSUB verzweigt zu verschiedenen Labels, abhängig vom Wert des Ausdrucks. Die Anweisung kann nur bis FreeBASIC v0.16 eingesetzt werden, oder in entsprechend höheren Versionen, die mit der Kommandozeilenoption Befehlsreferenzeintrag-lang deprecated compiliert wurden! Wird mit FreeBASIC v0.17 unter der Option -lang fb compiliert, so ist ON...GOSUB nicht mehr zulässig!

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 BefehlsreferenzeintragRETURN wieder zur Zeile nach dem ON...GOSUB zurückgesprungen werden.

ON...GOSUB kann durch andere Mechanismen, wie z. B. BefehlsreferenzeintragSELECT CASE in Verbindung mit BefehlsreferenzeintragSUB, 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:
BefehlsreferenzeintragON...GOTO, BefehlsreferenzeintragGOSUB, BefehlsreferenzeintragRETURN, BefehlsreferenzeintragGOTO, BefehlsreferenzeintragSELECT CASE, BefehlsreferenzeintragProgrammablauf


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 22.07.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 19.01.2013 von Redakteurnemored gespeichert.
  Versionen Versionen