Die IF – ELSE – Verzweigung

Für die IF-ELSE-Verzweigung werden folgende Steueranweisungen benutzt:

$IF, $ELSE, $ELSIF, $ENDIF.

Die Verzweigung beginnt immer mit

$IF <expr> 

und endet immer mit

$ENDIF 

Die Steueranweisungen

$ELSE 

und

$ELSEIF 

sind optional und dienen dazu, Mehrfachverzweigungen aufzubauen.

Hinweis

Die Bedingung im $IF-Steuersatz wird geprüft, indem der mathematische Ausdruck auf "wahr" bzw. "nicht wahr" geprüft wird (TRUE und FALSE). Um auch dezimale Größen verwenden zu können, gilt die Bedingung als erfüllt (TRUE), wenn....
der Betragswert des mathematischen Ausdruckes > oder = 0.5 ist.

Programmierbeispiel

N10 ...
N20 $IF P1 Nur wenn |P1| größer oder gleich 0,5 ist, werden die
Anweisungen N30 bis N50 abgearbeitet.
N30 ...
N40
N50
N60 $ENDIF

Aber auch folgendes ist möglich:

N10 ... 
N20 $IF P1 >= 0.5 Nur wenn P1 grösser oder gleich 0.5 ist, werden die
Anweisungen N30 bis N50 abgearbeitet
N30 ...
N40
N50
N60 $ENDIF

Oder aber:

N10 ... 
N20 $IF P1 > P2 Nur wenn P1 grösser P2 ist, werden die Anweisungen
N30 bis N50 abgearbeitet, ansonsten N70 bis N90
N30 ...
N40 ...
N50 ...
N60 $ELSE
N70 ...
N80 ...
N90 ...
N100 $ENDIF

Die Verwendung von ELSEIF erlaubt:

N10 ... 
N20 $IF P1 == 0 Nur wenn P1 gleich 0 ist, werden die Anweisungen N30
bis N50 abgearbeitet, ansonsten wird in der
$ELSEIF-Bedingung geprüft,ob P2 >= 0.5 ist und
entspr. N70 bis N90 bzw. N110 bis N130 abgearbeitet.
N30 ...
N40
N50
N60 $ELSEIF P2>=0.5 Die $ELSEIF – Bedingung dient zum Aufbau
ineinandergeschachtelter Verzweigungen.
N70 ...
N80
N90
N100 $ELSE
N110 ...
N120
N130
N140 $ENDIF

Hinweis

Entsprechend der Programmiersprache C existiert auch hier der Unterschied in der Syntax zwischen
Zuweisung: P5 = 3
und
Vergleich: $IF P5 == 3
Für die Version 2.3 und frühere gilt: Weil bei mathematischen Ausdrücken immer die Folge...
Operator -> Term -> Operator -> Term -> usw....
erwartet wird, müssen bei Vergleichsoperationen die Ausdrücke geklammert werden, denen ein Minuszeichen vorsteht ("-" wird als Operator interpretiert).

Programmierbeispiel

$IF P1 >= -5     falsch, da Term->Operator->Operator->Term
$IF P1 >= [-5]   richtig, da Term->Operator->Term->Operator->Term