Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine While-Schleife kann dazu verwendet werden, eine feststehende Folge von Anweisungen unbegrenzt oft auszuführen.
Zwei Typen von While-Schleifen
Schleifentyp
|
Erklärung
|
Beispiel
|
|---|---|---|
While ... Do
|
Bei der While ... Do-Schleife wird zuerst die Bedingung ausgewertet, und nur wenn diese Bedingung erfüllt wird, werden die Anweisungen ausgewertet, die auf die Bedingung folgen.
Sobald die Schleife vollständig durchlaufen ist, wird die Bedingung erneut ausgewertet, und wenn die Bedingung erfüllt wird, werden die Anweisungen erneut ausgewertet. Dieser Vorgang wird so lange wiederholt, bis die Bedingung nicht mehr erfüllt wird. |
|
Do ... While
|
Bei der Do ... While-Schleife wird der Ausdruck mindestens einmal ausgewertet.
Nach der ersten Auswertung der Anweisungen wird die Bedingung geprüft, und nur wenn die Bedingung erfüllt wird, werden die Anweisungen erneut ausgewertet. Dieser Vorgang wird so lange fortgesetzt, bis die Bedingung nicht mehr erfüllt wird. |
|
Anmerkung |
|---|
While-Schleifen können mithilfe der Exit While-Anweisung sofort verlassen werden. Sie wird analog zu Exit For in For-Schleifen verwendet. Wie die For-Schleife gibt auch die While-Schleife immer den booleschen Wert TRUE zurück, wenn sie als Ausdruck angesehen wird. |
Beispiel für eine While ... Do-Schleife
Im folgenden Beispiel wird in einer eingegebenen Zeichenfolge nach der ersten Ziffer gesucht. Sobald eine Ziffer gefunden wird, wird ihre Position ausgegeben; wenn keine Ziffer gefunden wird, wird -1 ausgegeben. In unserem Beispiel wird der Eingabetext explizit einer Zeichenfolgekonstante zugewiesen, es wäre jedoch genausogut möglich, den Text stattdessen einem Datenbankfeld des Typs "Zeichenfolge" zuzuweisen.
Für unsere Beispielzeichenfolge "Die 7 Zwerge" wird von der Formel die Zahl 5 zurückgegeben, da sich an der 5. Stelle des Eingabetextes die Ziffer 7 befindet.
Local StringVar inString := "The 7 Dwarves";
Local NumberVar strLen := Length (inString);
Local NumberVar result := -1;
Local NumberVar i := 1;
While i <= strLen And result = -1 Do
(
Local StringVar c := inString [i];
If NumericText (c) Then
result := i;
i := i + 1;
);
result
Anmerkung