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 VergleichListe, um zu überprüfen, ob der Inhalt einer Variable in einer Liste von Werten vorkommt.

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

Beispiele

Wenn A_Index größer als 100 ist, kehre via Return zurück.

if (A_Index > 100)
    return

Wenn das Ergebnis von A_TickCount - StartTime größer als das Ergebnis von 2*MaxTime + 100 ist, zeige "Zu viel Zeit verstrichen." und terminiere das Skript.

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

Dieses Beispiel wird wie folgt ausgeführt:

  1. Wenn Farbe das Wort "Blau" oder "Weiß" ist:
    1. Zeige "Die Farbe ist einer der erlaubten Werte.".
    2. Terminiere das Skript.
  2. Ansonsten, wenn Farbe das Wort "Silber" ist:
    1. Zeige "Silber ist keine erlaubte Farbe.".
    2. Stoppe weitere Überprüfungen.
  3. Ansonsten:
    1. Zeige "Diese Farbe wurde nicht erkannt.".
    2. Terminiere das Skript.
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
}

Eine einzelne Mehrfachanweisungszeile muss nicht mit geschweiften Klammern umschlossen werden.

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