Loop

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

Loop Wiederholungen

Parameter

Wiederholungen

Typ: Integer

Wenn weggelassen, wird die Schleife endlos wiederholt, bis ein Break oder Return auftritt. Andernfalls geben Sie an, wie oft die Schleife wiederholt werden soll. Beachten Sie aber, dass ein explizit leerer Wert oder eine Zahl kleiner als 1 die Schleife komplett überspringt.

Wiederholungen wird nur einmal ausgewertet, direkt vor Beginn der Schleife. Wenn Wiederholungen z.B. ein Ausdruck mit Nebeneffekten wie Funktionsaufrufen oder Zuweisungen ist, dann treten diese Nebeneffekte nur einmal auf.

Wenn Wiederholungen mit runden Klammern umschlossen ist, kann das Leer- oder Tabulatorzeichen weggelassen werden. Zum Beispiel: Loop(2)

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.

A_Index kann ein beliebiger Integerwert zugewiesen werden. Wenn Wiederholungen angegeben ist, beeinflusst eine Änderung von A_Index die aktuelle Anzahl der geplanten Wiederholungen. Zum Beispiel bewirkt A_Index := 3, dass sich eine Schleife so verhält, als wäre sie in der dritten Wiederholung (A_Index ist 4 in der nächsten Wiederholung), während A_Index-- verhindert, dass die Schleife jemals die nächste Wiederholung erreicht.

Nach der Schleife kann optional eine Else-Anweisung angegeben werden, die ausgeführt wird, wenn Wiederholungen Null ist.

Je nach Bedarf kann der One True Brace (OTB) Style verwendet werden. 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, Else

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
}