IF … THEN … ELSEIF … ELSE … ENDIF
- Last UpdatedNov 11, 2023
- 2 minute read
Mit IF-THEN-ELSE-ENDIF können je nach dem Wert einer Bedingung verschiedene Operationen ausgeführt werden. Die Syntax lautet wie folgt:
IF <Boolean_expression> THEN
[statements];
[ { ELSEIF
[statements] } ];
[ ELSE
[statements] ];
ENDIF;
Wobei Boolean_expression ein Ausdruck ist, der so ausgewertet werden kann, dass er einen binären Wert (Boolean) ergibt.
Je nach dem Datentyp, der vom Ausdruck zurückgegeben wird, wird der Ausdruck ausgewertet, um einen Zustand True oder False gemäß folgender Regel ausgewertet:
|
Datentyp |
Zuordnung |
|---|---|
|
Boolean, Discrete |
Wird direkt verwendet (keine Zuordnung nötig). |
|
Integer |
Value = 0 ausgewertet als False. |
|
Float, Real |
Value = 0 ausgewertet als False. |
|
Double |
Value = 0 ausgewertet als False. |
|
String, Message |
Keine Zuordnung möglich. Die Verwendung eines Ausdrucks, der zu einem Zeichenfolgen-Typ als Boolean_expression führt, führt dazu, dass die Skriptvalidierung einen Fehler ergibt. |
|
Time |
Keine Zuordnung möglich. Die Verwendung eines Ausdrucks, der zu einem Zeit-Typ als Boolean_expression führt, führt dazu, dass die Skriptvalidierung einen Fehler ergibt. |
|
ElapsedTime |
Keine Zuordnung möglich. Die Verwendung eines Ausdrucks, der zu einem AbgelaufeneZeit-Typ als Boolean_expression führt, führt dazu, dass die Skriptvalidierung einen Fehler ergibt. |
|
Object |
Die Verwendung eines Ausdrucks, der zu einem Objekt-Typ führt. Validiert, aber zur Laufzeit, das Objekt wird konvertiert zu Boolean. Wenn der Typ nicht zu Boolean konvertiert werden kann, erfolgt eine Laufzeit-Ausnahme. |
Der erste Anweisungsblock wird ausgeführt, wenn ein Boolean_expression den Wert True hat. Nach dem Schlüsselwort ELSE kann wahlweise ein zweiter Anweisungsblock definiert werden, Dieser Block wird ausgeführt, wenn der Boolean_expression den Wert False hat.
Um mehrere alternative Bedingungen zu überprüfen, können dazwischen beliebig viele ELSEIF-Anweisungen stehen. Die ELSEIF-Klausel imitiert Schalt-Anweisungen, die von anderen Programmiersprachen angeboten werden. Zum Beispiel:
IF value == 0 Then
Message = "Value is zero";
ELSEIF value > 0 Then
Message = "Value is positive";
ELSEIF value < 0 Then
Message = "Value is negative";
ELSE
{Default. Should never occur in this example};
ENDIF;
Im Folgenden werden also sekundäre IF-Strukturen ineinander verschachtelt, die jeweils mit einem ENDIF; beendet werden müssen.
IF (X1 == 1) THEN
X1 = 5;
{ ELSEIF <X1 == 2> THEN
X1 = 10;
ELSEIF X1 == 3 THEN
X1 = 20 ;
ELSEIF X1 == 4 THEN
X1 = 30 };
IF X1 == 99 THEN
X1 = 0;
ENDIF;
ENDIF;
Siehe Skript-Beispiele für weitere Ideen zur Verwendung dieses Typs von Steuerkonstrukt.