Quick Basic: Do-Loop

Aus Wikibooks

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[Bearbeiten]

 DO
     Anweisungen
     [ EXIT DO ]
     Anweisungen
 LOOP

Beispiel[Bearbeiten]

Ein 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$.