Version 6.0
Die Syntax für die Abfragefolge While...End while lautet:
While (Boolean_Expression) statement(s) End while
Die Bedingung wird am Schleifenanfang abgefragt: Ist sie FALSE, wird die anschließende Anweisungsfolge nicht ausgeführt.
Ist die Anfangsbedingung TRUE, führt das Programm die Anweisungsschleife While...End while aus, bis die Bedingung FALSE ist.
Sie müssen die Eintrittsbedingung unmittelbar vor der Schleife initialisieren, d.h. einen geeigneten Wert festsetzen, so dass der Boolean Ausdruck TRUE ist und die Abfragefolge While...End while abläuft.
Sie müssen dem Boolean Ausdruck in der Schleife einen sinnvollen Wert zuweisen, da sonst die Schleife endlos läuft. Nachfolgende Schleife läuft endlos, da NeverStop immer TRUE ist:
NeverStop:=True While (NeverStop) End while
Im Falle einer unkontrolliert ablaufenden Methode können Sie die Schleife über den Schrittmodus stoppen und das Problem beheben. Weitere Informationen dazu finden Sie im Abschnitt Debugging.
Beispiel
CONFIRM ("Neuen Datensatz hinzufügen?") ` Will der Benutzer einen Datensatz hinzufügen? While (OK = 1) ` Durchlaufe, solange der Benutzer ADD RECORD([aTable]) ` Neuen Datensatz hinzufügen will End while ` Die Schleife endet immer mit End while
In diesem Beispiel wird die Systemvariable OK über den Befehl CONFIRM vor Beginn der Schleife gesetzt. Klickt der Benutzer im Dialogfenster Bestätigen auf die Schaltfläche OK, wird die Systemvariable OK auf 1 gesetzt, die Schleife startet. Ansonsten hat die Systemvariable OK den Wert 0, die Schleife wird übersprungen. Sobald die Schleife läuft, sorgt der Befehl ADD RECORD dafür, dass sie weiterläuft, da er die Systemvariable OK auf 1 setzt, wenn der Benutzer den Datensatz sichert. Annulliert der Benutzer den letzten Datensatz, d.h. er sichert ihn nicht, wird die Systemvariable OK auf 0 gesetzt, die Schleife stoppt.
Referenz
Ablaufsteuerung, Case of...Else...End case, For...End for, If...Else...End if, Repeat...Until.