11.2 If-EndIf-Anweisung

Es gibt zwei Versionen der If-Anweisung: Eine lange und eine kurze.

1) Lange Version der If-Anweisung:

 
If <expr> <block> [ElseIf <expr> <block> ...] [Else <block>] EndIf

Die If-Anweisung prüft, ob der angegebene Ausdruck wahr (ungleich Null) ist. Ist dies der Fall, werden die Befehle nach der Anweisung ausgeführt. Wenn der angegebene Ausdruck falsch (Null) ist, springt If auf die nächste ElseIf-Anweisung (sofern vorhanden) und prüft, ob der gegebene Ausdruck wahr ist. Dies wird wiederholt, bis die Else-Anweisung erreicht ist. Wenn keine der Ausdrücke vorher wahr war, wird der Code Else ausgeführt.

Die Anweisungen If und EndIf sind obligatorisch. ElseIf und Else-Anweisungen sind optional. Sie können beliebig viele ElseIf's verwenden, aber es darf nur eine Else-Anweisung vorhanden sein. Darüber hinaus muss die Else-Anweisung die letzte Bedingung vor dem EndIf sein. Hier ist ein Beispiel:

 
If a > 5                       ; überprüft, ob a größer ist als 5
    DebugPrint("a > 5")
ElseIf a < 5                   ; überprüft, ob a kleiner ist als 5
    DebugPrint("a < 5")
Else                           ; sonst ist a gleich 5
    DebugPrint("a = 5")
EndIf

Sie können auch komplexere Ausdrücke als Bedingung verwenden:

 
If country$ = "USA" And age < 21
    DebugPrint("No alcohol permitted under 21 in the USA!")
EndIf

2) Kurze Version der If-Anweisung:

 
If <expr> Then <true-stat> [ElseIf <expr> <true-stat> ...] [Else <stat>]

Die kurze Version der If-Anweisung funktioniert auf die gleiche Weise wie die lange, hat aber den Vorteil, dass Sie EndIf nicht gebrauchen müssen. Die kurze If-Anweisung hat die Einschränkung, dass alle seine Teile in einer einzigen Zeile plaziert werden müssen. Eine weitere Einschränkung ist, dass nur eine Anweisung plaziert werden darf, der dann die Anweisungen Then / ElseIf / Else folgen müssen. Wenn Sie mehrere Anweisungen ausführen möchten, müssen Sie die lange Version benutzen.

Das obige Beispiel haben wir mit der kurzen If-Anweisung folgender Weise geschrieben:

 
If a>5 Then Print("a>5") ElseIf a<5 Print("a<5") Else Print("a=5")

Sie können sehen, dass das Ergebnis nicht besonders gut lesbar ist. Für das obige Beispiels ist es nicht empfehlenswert, die kurze Version zu verwenden. Die kurze If-Anweisung passt besser, wenn Sie nur eine Bedingung haben, z.B.

 
If a = True Then b = 5

Das ist besser lesbar als

 
If a = True
    b = 5
EndIf

Eine andere Version von If ist die so genannte Sofort-If-Anweisung IIf(). Diese Version wird als Befehl in Hollywood durchgeführt und ist Teil der Systembibliothek. Siehe IIf für Details.


Navigation zeigen