Loop

Führt eine oder mehrere Anweisungen wiederholt aus: Entweder eine bestimmte Anzahl oder bis ein Break auftritt.

Loop , Wiederholungen

Parameter

Wiederholungen

Wenn weggelassen, wird die Schleife endlos wiederholt, bis ein Break oder Return auftritt. Andernfalls geben Sie an, wie oft die Schleife wiederholt werden soll.

Wenn Wiederholungen eine Variablenreferenz wie %AnzahlElemente% ist, wird die Schleife jedes Mal übersprungen, wenn die Variable leer ist oder eine Zahl kleiner als 1 enthält.

Aufgrund der Unterstützung für Datei-Schleifen kann Wiederholungen kein Ausdruck sein. Allerdings kann, wie bei allen ausdruckslosen Parametern, ein Ausdruck durch Voranstellen eines Prozent- und Leerzeichens erzwungen werden. Zum Beispiel: Loop % Wiederholungen + 1. In solchen Fällen wird der Ausdruck nur einmal ausgewertet, direkt vor Beginn der Schleife.

Bemerkungen

Nach einer Schleife folgt üblicherweise ein Block, eine Sammlung von Anweisungen, die den Körper der Schleife bilden. Für eine Schleife mit nur einer einzigen Anweisung ist jedoch kein Block erforderlich (ein "if" und dessen "else" werden in diesem Fall als Einzelanweisung behandelt).

Häufig wird diese Anweisung als Endlosschleife verwendet, zusammen mit einem Break irgendwo im Körper der Schleife, um die Schleife gezielt zu stoppen.

Es ist ratsam, Break und Continue anstelle von Goto zu verwenden, da sie in der Regel die Lesbarkeit und Wartbarkeit eines Skripts verbessern. Es ist auch möglich, eine "While"- oder "Do...While/Until" -Schleife zu simulieren, indem die erste oder letzte Anweisung im Körper der Schleife zu einer IF-Anweisung gemacht wird, die je nach Bedingung ein Break ausführt. In der Regel sollte aber While oder Loop...Until verwendet werden.

Die interne Variable A_Index enthält die Nummer der aktuellen Schleifenwiederholung. Sie enthält 1, wenn der Körper der Schleife zum ersten Mal ausgeführt wurde. Beim zweiten Mal enthält sie 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, einschließlich Datei-Schleifen und Registry-Schleifen; außerhalb einer Schleife enthält A_Index 0.

Je nach Bedarf kann der One True Brace (OTB) Style bei normalen Schleifen verwendet werden (aber nicht bei speziellen Schleifen wie Datei-Schleifen und parsende Schleifen). Zum Beispiel:

Loop {
    ...
}
Loop %Wiederholungen% {
    ...
}

Spezialisierte Schleifen: Mit Schleifen können Dateien, Ordner oder Registry-Einträge automatisch nacheinander abgerufen werden. Einzelheiten finden Sie unter Datei-Schleife und Registry-Schleife. Dateilesende Schleifen können den kompletten Inhalt einer Datei zeilenweise durchgehen. Parsende Schleifen können einzelne Felder einer Zeichenkette durchgehen.

Until, While-Schleife, For-Schleife, Datei-Schleife, Registry-Schleife, dateilesende Schleife, parsende Schleife, Break, Continue, Blöcke

Beispiele

Erstellt eine Schleife mit 3 Wiederholungen.

Loop, 3
{
    MsgBox, Wiederholung Nr. %A_Index%  ; A_Index wird 1, 2 und 3 sein.
    Sleep, 100
}

Erstellt eine Endlosschleife, die aber nach der 25. Wiederholung unterbrochen wird.

Loop
{
    if (A_Index > 25)
        break  ; Unterbricht die Schleife
    if (A_Index < 20)
        continue ; Überspringt das darunter und startet eine neue Wiederholung
    MsgBox, A_Index = %A_Index% ; Dies wird nur die Nummern 20 bis 25 anzeigen
}