Eine Verzweigung ermöglicht die alternative Ausführung einer oder mehrerer Anweisungen. Ihr Selektor bestimmt die auszuführende Alternative, er ist als Boolescher Ausdruck anzugeben.
Die Verzweigung ist durch das Schlüsselwort if() einzuleiten, dem die zu prüfende Bedingung als Boolescher Ausdruck in runden Klammern folgt. In der nächsten Zeile folgen alle Anweisungen, die bei Erfüllung der Bedingung ausgeführt werden sollen. Nach der letzten Anweisungszeile wird die Verzweigung durch das Schlüsselwort endif abgeschlossen:
if( $a < $b ) print( "Bedingung erfüllt." ) endif
Das Beispiel gibt den Text Bedingung erfüllt. durch Ausführung der print()-Anweisung nur dann aus, wenn der Boolesche Ausdruck $a < $b den Wert 1 (Bedingung erfüllt) liefert, also die Variable $a einen kleineren Wert als $b enthält. Alle auf endif folgenden Anweisungen würden wieder unbedingt in jedem Falle ausgeführt.
Das Schlüsselwort else leitet eine Reihe von Anweisungen ein, die im Falle der Nichterfüllung auszuführen sind:
if( $a < $b ) print( "Bedingung erfüllt." ) else print( "Bedingung leider nicht erfüllt!" ) endifDieses Beispiel verhält sich wie das vorhergehende; sofern die Variable $a allerdings keinen kleineren Wert als die Variable $b enthält (also $a > $b oder $a = $b gilt), wird jetzt der Text Bedingung leider nicht erfüllt! ausgegeben.
Das Schlüsselwort elseif leitet, gekoppelt an eine weitere Bedingung, eine Reihe von Anweisungen ein, die im Falle der Nichterfüllung der ersten if-Anweisung auszuführen sind:
if( $a < $b ) print( "Bedingung_1 erfüllt." ) elseif( $a = $b ) print( "Bedingung_1 nicht erfüllt, aber Bedingung_2 erfüllt." ) else print( "Keine der beiden Bedingungen erfüllt!" ) endif
Innerhalb eines Ausdrucks kann der iif()-Operator verwendet werden. Die Verzweigung
if( $a < $b ) $x = $b - $a else $x = $a - $b endif
kann auch durch die Zeile
$x = iif( $a < $b, $b - $a, $a - $b )
ausgedrückt werden. Ist die Bedingung $a < $b erfüllt, wird $x der Wert des Ausdrucks $b - $a zugewiesen, anderenfalls der Wert des letzten Ausdrucks $a - $b. Es wird nur derjenige Ausdruck berechnet, dessen Wert der iif()-Operator zurückgibt. In der Zeile
$x = iif( $a < $b, $b - $a, calc( $c ) )
wird calc( $c ) also nicht aufgerufen, wenn die Bedingung $a < $b erfüllt ist und daher das Resultat von $b - $a zurückzugeben ist.
Auch der icase()-Operator kann innerhalb von Ausdrücken verwendet werden. Als Selektor dient ein Ausdruck, dessen Wert aus mehr als nur zwei Alternativen auswählen kann. Die Anweisung im folgenden Beispiel wurde der Übersichtlichkeit halber auf mehrere Textzeilen verteilt und durch die Unterstriche _ zu einer Anweisungszeile zusammengefügt; das empfiehlt sich auch in eigenen Skripten. Die Zeile
$x = icase( $a + $b, 1, "Erster Ausdruck", _
2, "Zweiter Ausdruck", _
3, "Dritter Ausdruck", _
else, "Unbekannter Wert!" )
weist $x das Literal Erster Ausdruck zu, wenn der
Ausdruck $a + $b den Wert 1 hat, das Literal
Zweiter Ausdruck, wenn er den Wert 2 hat usw. Das
Schlüsselwort else steht stellvertretend
für alle anderen Werte; wenn der Ausdruck $a +
$b im Beispiel also einen anderen Wert als 1, 2 oder 3
hat, wird $x das Literal Unbekannter Wert!
zugewiesen. Der else-Zweig ist optional. Auch der
icase()-Operator berechnet nur den Ausdruck, dessen
Wert zurückgegeben wird. Allgemein hat der
icase()-Operator folgende Syntax:
icase( <exp_selector>,
<expression_alternative_1>, <expression_result_1>, _
<expression_alternative_2>, <expression_result_2>, _
...
<expression_alternative_n>, <expression_result_n>[, _
else, <expression_result_else>] )
An jeder Stelle können also nicht nur Werte oder einzelne Variablen, sondern auch Ausdrücke verwendet werden. Der Operator muss nicht auf mehrere Textzeilen verteilt werden, wie dies hier aus Gründen der Übersicht geschieht.