Continue

Überspringt den Rest der aktuellen Schleife und beginnt einen neuen Durchlauf. Nur in einer Schleife gültig.

Continue , LoopLabel

[AHK_L 59+]: LoopLabel ist optional und kennzeichnet, für welche Schleife diese Anweisung gelten soll; dieser Parameter kann entweder der Name eines Labels oder die Nummer einer Verschachtelungsebene sein. Fehlt dieser Parameter oder ist er 1, gilt diese Anweisung für die am nächsten umschlossene Schleife. LoopLabel muss ein konstanter Wert sein - Variablen und Ausdrücke werden nicht unterstützt. Wenn Sie vorhaben, den Namen eines Labels anzugeben, müssen Sie darauf achten, dass dieses Label direkt auf einen Schleifenbefehl verweist.

Continue ist dem Verhalten nach das gleiche wie, als würde das Skript die geschweifte Endklammer einer Schleife erreichen:

  1. A_Index wird um 1 erhöht.
  2. Der Rest des Schleifenkörpers wird übersprungen.
  3. Die Bedingung der Schleife (falls vorhanden) wird überprüft, ob sie erfüllt ist. Ist dies der Fall, beginnt ein neuer Durchlauf; ansonsten endet die Schleife.

Break und Continue sind besser geeignet als Goto, weil sie ein Skript üblicherweise besser lesbar und verwaltbar machen.

Siehe auch

Break, Loop, Until, While-Schleife, For-Schleife, Blöcke, Label

Beispiel

; Dieses Beispiel zeigt vom 6. bis zum 10. Durchlauf 5 Mitteilungsfenster an.
; Das "continue" in den ersten 5 Durchläufen bewirkt, dass
; die MsgBox-Zeile darunter übersprungen wird.
Loop, 10
{
    if A_Index <= 5
        continue
    MsgBox %A_Index%
}
; Überspringt von einer inneren Schleife aus den Rest des äußeren Schleifenkörpers.
outer:
Loop 3
{
    x := A_Index
    Loop 3
    {
        if (x*A_Index = 4)
            continue outer  ; Das gleiche wie continue 2 oder goto continue_outer.
        MsgBox %x%,%A_Index%
    }
    continue_outer: ; Für goto.
    ErrorLevel:=ErrorLevel ; Vor Revision 57 konnten Label nicht auf das Ende eines Blocks verweisen.
}