Quick Basic: Do-While
Mit der Do-Loop-While-Schleife kann etwas wiederholt ausgeführt werden, solange eine Bedingung erfüllt ist. Zum Beispiel lässt sich eine Passwortabfrage gestalten, bei der eine Do-While-Schleife eine Aktion so lange wiederholt, bis das eingegebene Passwort mit dem gespeicherten Passwort übereinstimmt.
Syntax
BearbeitenDO Anweisungen LOOP WHILE Bedingung
Beispiele
BearbeitenEin sinnvolles Beispiel ist ein Programm, welches einen Tastendruck erkennt. Das Programm läuft endlos, bis eine Taste gedrückt wird oder der Benutzer es abbricht. Die Auswertung der gedrückten Tasten erfolgt mit INKEY$ und wird einer Variablen (hier: itaste$) zugewiesen:
REM Dieses Beispiel wartet auf das Drücken einer beliebigen Taste.
PRINT "Weiter mit beliebiger Taste..."
DO
itaste$ = INKEY$
LOOP WHILE itaste$ = ""
PRINT "Sie haben eine Taste gedrückt!"
Alternativ kann WHILE auch hinter dem DO stehen:
REM Dieses Beispiel wartet auf das Drücken einer beliebigen Taste.
PRINT "Weiter mit beliebiger Taste..."
DO WHILE itaste$ = ""
itaste$ = INKEY$
LOOP
PRINT "Sie haben eine Taste gedrückt!"
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 eines Tastendrucks. Der Tastendruck erzeugt einen String, der länger ist als ein Leerstring und die Schleife wird unterbrochen.
P.S. Bei den fortschrittlichen Themen befindet sich auch eine genauere Beschreibung zu der Funktion INKEY$.
Bauen wir doch mal eine Do-While-Schleife in eine Passwortabfrage wie oben beschrieben ein:
CLS
INPUT "Bitte geben Sie das Passwort ein: ", Passwort$
DO WHILE Passwort$ <> "SicheresPasswort"
BEEP
INPUT "Falsches Passwort. Bitte versuchen Sie es erneut: ", Passwort$
LOOP
PRINT "Richtiges Passwort. Zutritt erlaubt!"
Dieses Programm macht folgendes: Der Benutzer gibt ein Passwort ein und es wird in der Do-While-Schleife geprüft. Wenn das Passwort gleich dem gespeicherten Passwort ist, wird auf den Bildschirm geschrieben: "Richtiges Passwort. Zutritt erlaubt!" Das Zeichen für Ungleichheit <> sagt dem Computer in diesem Fall: "solange Passwort$ ungleich der Zeichenkette "SicheresPasswort" ist, also das Passwort falsch ist, mache Folgendes: Der Computer piepst (dafür der Befehl BEEP) und fordert den Benutzer mit INPUT auf, das Passwort erneut einzugeben. Und das macht er so lange, bis Passwort$ nicht mehr ungleich "SicheresPasswort" ist.
Aufgabe
BearbeitenSchreibe ein Programm, welches auf den Bildschirm schreibt "QuickBASIC ist cool!", bis der Benutzer eine Taste drückt.