Die IF – ELSE – Verzweigung
Für die IF-ELSE-Verzweigung werden folgende Steueranweisungen benutzt:
$IF, $ELSE, $ELSEIF, $ENDIF.
Syntax: |
Die Verzweigung beginnt immer mit
$IF=.. |
und endet immer mit
$ENDIF |
Die Steueranweisungen
$ELSE |
und |
$ELSEIF |
sind optional und dienen dazu, Mehrfachverzweigungen aufzubauen.
Achtung
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
Die IF – ELSE – Verzweigung
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ößer 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ößer 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
Achtung
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