Quick Basic: Do-Loop
Die Do-Loop-Schleife ist eine Schleife, die praktisch unendlich ausgeführt wird (daneben gibt es noch andere Schleifentypen, bei denen man festlegen kann, wann man sie abbricht). Sie kann beispielsweise verwendet werden, um auf das Eintreten eines bestimmtes Ereignisses zu warten, welches nicht so einfach als eine einzige Bedingung zu formulieren ist.
Syntax
BearbeitenDO Anweisungen [ EXIT DO ] Anweisungen LOOP
Beispiel
BearbeitenEin sehr sinnvolles Beispiel ist ein Programm, welches mit den Tasten gesteuert wird. Einigen Tasten werden bestimmte Funktionen zugewiesen. Üblicherweise läuft ein derartiges Programm endlos, bis der Benutzer es abbricht. Die Auswertung der gedrückten Tasten erfolgt mit INKEY$ und einer SELECT-Anweisung:
REM Dieses Beispiel gibt unendlich lange die gedrückten Tasten auf dem Bildschirm aus.
REM Es werden einige Beispiel-Tastencodes angegeben.
REM Abbruch mit Escape.
DO
DO
PRESSEDKEY$ = INKEY$
LOOP UNTIL PRESSEDKEY$ <> ""
SELECT CASE ASC(PRESSEDKEY$)
CASE 13
PRINT "Du hast die Eingabetaste gedrückt!"
CASE 27
PRINT "Du hast Escape gedrückt - das Programm wird beendet!"
REM Da die Schleife der Hauptbestandteil des Programms ist, wird selbiges beendet, wenn die Schleife abgebrochen wird.
EXIT DO
CASE 48 TO 57
PRINT "Du hast die Nummer"; ASC(PRESSEDKEY$) - 48; "gedrückt"
CASE ELSE
PRINT "Du hast das Zeichen "; PRESSEDKEY$; " mit dem Code"; ASC(PRESSEDKEY$); "gedrückt"
END SELECT
LOOP
Eine kurze Erklärung: Das ganze Programm "hängt" in einer Do-Loop-Schleife, die endlos läuft - bis eine Bedingung eintritt. In diesem Fall ist das das Registrieren des Tastendrucks mit dem Code 27 (dies ist die Escape-Taste). Der Tastendruck wird ausgewertet und entsprechend eine Zeile ausgegeben.
Bei den fortschrittlichen Themen befindet sich auch eine genauere Beschreibung zu der Funktion INKEY$.