If (Ausdruck)

Bestimmt eine oder mehrere Anweisungen, die ausgeführt werden sollen, wenn ein Ausdruck True ergibt.

If (Ausdruck)
{
    Anweisungen
}

Bemerkungen

Eine If-Anweisung mit Ausdruck unterscheidet sich von einer traditionellen If-Anweisung wie if GefundeneFarbe != Blau in der Regel dadurch, dass der Ausdruck von runden Klammern umschlossen ist, wie z. B. if (GefundeneFarbe != "Blau"). Allerdings sind diese Klammern nicht immer erforderlich, da davon ausgegangen wird, dass eine If-Anweisung, die keinem altmodischen if-Muster entspricht, einen Ausdruck enthält. Folgende Schreibweisen werden auch als If (Ausdruck) erkannt:

Bekannte Einschränkung: Aus historischen Gründen akzeptiert If (Ausdruck) genau genommen nicht einen reinen Ausdruck, sondern einen numerischen Parameter. if %MeineVar% beispielsweise ist das gleiche wie if MeineVar. Um das zu umgehen, muss der Ausdruck immer in runden Klammern gesetzt werden.

Wenn der Ausdruck der If-Anweisung True ergibt (also ein Ergebnis, das weder eine leere Zeichenkette noch 0 ist), wird die Zeile oder der Block darunter ausgeführt. Ansonsten wird, wenn es ein entsprechendes Else gibt, die Ausführung auf die Zeile oder den Block darunter springen.

Wenn ein If mehr als eine Zeile besitzt, müssen diese Zeilen mit geschweiften Klammern umschlossen werden (um einen Block zu erstellen). Besitzt ein If allerdings nur eine Zeile, können die geschweiften Klammern weggelassen werden. Entsprechende Beispiele finden Sie am unteren Ende dieser Seite.

Das Leerzeichen nach if ist optional, wenn der Ausdruck mit einer runden Startklammer beginnt, wie z. B. if(Ausdruck).

Der One True Brace Style (OTB) kann je nach Bedarf bei If-Anweisungen angewendet werden, die Ausdrücke sind (aber nicht bei traditionellen If-Anweisungen). Zum Beispiel:

if (x < y) {
    ; ...
}
if WinExist("Unbenannt - Editor") {
    WinActivate
}
if IstFertig {
    ; ...
} else {
    ; ...
}

Im Gegensatz zur If-Anweisung unterstützt eine Else-Anweisung unmittelbar auf der rechten Seite eine Anweisung beliebiger Art.

Neben solchen Anweisungen gibt es noch if Var between Untergrenze and Obergrenze, um zu überprüfen, ob eine Variable zwischen zwei Werten liegt, und if Var in Vergleichsliste, um zu überprüfen, ob der Inhalt einer Variable in einer Liste von Werten vorkommt.

Siehe auch

Ausdrücke, Zuweisungsausdruck (:=), if Var in/contains, if Var between, IfInString, Blöcke, Else, While-Schleife

Beispiele

#1

if (A_Index > 100)
    return

if (A_TickCount - Startzeit > 2*Maximalzeit + 100)
{
    MsgBox Zu viel Zeit verstrichen.
    ExitApp
}

if (Farbe = "Blau" or Farbe = "Weiß")
{
    MsgBox Die Farbe ist einer der erlaubten Werte.
    ExitApp
}
else if (Farbe = "Silber")
{
    MsgBox Silber ist keine erlaubte Farbe.
    return
}
else
{
    MsgBox Diese Farbe wurde nicht erkannt.
    ExitApp
}

#2: Eine einzelne Mehrfachanweisungszeile muss nicht mit geschweiften Klammern umschlossen werden.

MeineVar := 3
if (MeineVar > 2)
    MeineVar++, MeineVar := MeineVar - 4, MeineVar .= " test"
MsgBox % MeineVar  ; Zeigt "0 test".