While-Schleife [v1.0.48+]

Führt eine Reihe von Befehlen wiederholend aus, bis ein bestimmter Ausdruck als falsch gewertet wird.

While Ausdruck
While(Ausdruck)

Parameter

Ausdruck

Beliebiger gültiger Ausdruck. Zum Beispiel: while x < y.

Bemerkungen

Der Ausdruck wird nach jedem Schleifendurchlauf einmal ausgewertet. Falls die Auswertung des Ausdrucks wahr ist (weder eine leere Zeichenkette noch die Zahl 0), wird der Schleifenkörper ausgeführt, ansonsten springt die Ausführung auf die Zeile nach dem Schleifenkörper.

Nach einer While-Schleife erfolgt üblicherweise ein Block (eine Sammlung von Anweisungen), der den Schleifenkörper definiert. Eine Schleife mit nur einer einzigen Anweisung benötigt keinen Block (ein "if" und das dazugehörige "else" werden hierbei als Einzelanweisung angesehen).

Optional kann der "One True Brace Style" (OTB) angewendet werden, um die geschweifte Startklammer auf dieselbe Zeile statt darunter zu setzen. Zum Beispiel: while x < y {.

Die interne Variable A_Index enthält die Nummer des aktuellen Schleifendurchlaufs. Sie enthält eine 1, sobald der Ausdruck und Körper der Schleife das erste Mal ausgeführt wird. Beim zweiten Mal enthält sie eine 2; und so weiter. Wenn eine innere Schleife von einer äußeren Schleife umschlossen ist, hat die innere Schleife Vorrang. A_Index funktioniert in jeder Schleifenvariante, aber außerhalb einer Schleife enthält sie eine 0.

Wie bei allen anderen Schleifen auch, kann mit Break die Schleife vorzeitig beendet werden. Mit Continue kann außerdem der Rest des aktuellen Durchlaufs übersprungen werden, dabei wird A_Index um 1 erhöht und der Ausdruck der While-Schleife neu ausgewertet. Ist die Auswertung weiterhin wahr, beginnt ein neuer Durchlauf; ansonsten endet die Schleife.

Spezialisierte Schleifen: Mit Schleifen können Dateien, Ordner oder Registry-Einträge automatisch abgerufen werden (einzeln). Siehe Dateimuster-Schleife und Registry-Schleife für Details. Datei-lesende Schleifen können den kompletten Inhalt einer Datei zeilenweise durchgehen. Parsende Schleifen können einzelne Felder einer Zeichenkette durchgehen.

Siehe auch

Until, Break, Continue, Blöcke, Loop, For-Schleife, Dateimuster-Schleife, Registry-Schleife, Datei-lesende Schleife, Parsende Schleife, If (Ausdruck)

Beispiele

; Während der Benutzer einen Ziehvorgang mit der linken Maustaste durchführt, zeigt ein ToolTip Informationen über die Größe der Fläche innerhalb des Ziehbereichs an.

CoordMode, Mouse, Screen

~LButton::
    MouseGetPos, StartPosX, StartPosY
    while GetKeyState("LButton")
    {
        MouseGetPos, x, y
        ToolTip, % StartPosX ", " StartPosY "`n" Abs(StartPosX-x) " x " Abs(StartPosY-y)
        Sleep, 10
    }
    ToolTip
return