{...} (Block)

Blöcke sind eine oder mehr Anweisungen, die von zwei geschweiften Klammern umschlossen sind. Diese werden häufig im Zusammenhang mit Funktionsdefinitionen und Kontrollanweisungen verwendet.

{
    Anweisungen
}

Bemerkungen

Ein Block wird genutzt, um zwei oder mehr Anweisungen miteinander zu verbinden. Ein Block kann auch genutzt werden, um zu bestimmen, zu welcher If-Anweisung eine Else-Anweisung gehören soll. Das folgende Beispiel zeigt, wie man die Else-Anweisung der ersten statt zweiten If-Anweisung zuordnen kann:

if (Var1 = 1)
{
    if (Var2 = "abc")
        Sleep, 1
}
else
    return

Obwohl Blöcke überall eingesetzt werden können, sind sie eigentlich nur relevant, wenn sie in Verbindung mit Funktionsdefinitionen, If-Anweisungen, Else, Loop-Anweisungen, Try, Catch oder Finally genutzt werden.

Wenn eine der oben genannten Kontrollanweisungen nur eine einzige Anweisung hat, muss diese Anweisung nicht von einem Block umschlossen sein (dies funktioniert nicht bei Funktionsdefinitionen). Es gibt jedoch Fälle, wo genau dies die Übersichtlichkeit und Wartbarkeit des Skripts erhöhen könnte.

Ein Block kann leer sein (muss keine Anweisungen enthalten); das heißt, dass zum Beispiel der Inhalt eines Blocks auskommentiert werden kann, ohne den Block selbst entfernen zu müssen.

One True Brace (OTB, K&R-Stil): Der OTB-Style kann optional an folgenden Stellen angewendet werden: Funktionsdefinitionen, If (Ausdruck), Else, Loop Anzahl, While, For, Try, Catch und Finally. Dieser Style kann genutzt werden, um die geschweifte Startklammer des Blocks direkt neben der Kontrollanweisung zu setzen, statt sie wie sonst einzeln darunter zu setzen. Zum Beispiel:

MeineFunktion(x, y) {
    ...
}
if (x < y) {
    ...
} else {
    ...
}
Loop %WiederholungenAnzahl% {
    ...
}
While x < y {
    ...
}
For k, v in obj {
    ...
}
Try {
    ...
} Catch e {
    ...
} Finally {
    ....
}

Neben einer Klammer (außer der geschweiften Startklammer des OTB-Styles) kann zudem eine Anweisung erfolgen. Zum Beispiel:

if (x = 1)
{ MsgBox Diese Zeile befindet sich auf der rechten Seite der geschweiften Startklammer. Sie wird jedes Mal ausgeführt, wenn die IF-Anweisung wahr ist.
    MsgBox Das ist die nächste Zeile.
} MsgBox Diese Zeile befindet sich auf der rechten Seite der geschweiften Endklammer. Sie wird bedingungslos ausgeführt.

Funktionsdefinitionen, Kontrollanweisungen, If-Anweisungen, Else, Loop-Anweisungen, Try, Catch, Finally

Beispiele

Indem die beiden Anweisungen MsgBox, test1 und Sleep, 5 mit geschweiften Klammern umschlossen werden, weiß die If-Anweisung, dass sie beide ausführen soll, wenn x gleich 1 ist.

if (x = 1)
{
    MsgBox, test1
    Sleep, 5
}
else
    MsgBox, test2