Ruby unterstützt die if-Anweisung sowohl in der Ausdrucks- als auch in der Ausdrucksmodifzierungsform. unless Bedingung ist äquivalent zur if not Bedingung und zwar in allen Kontexten.
Ein if/unless-Ausdruck liefert den Wert des letzten Ausdrucks.
if condition [then] code [elsif condition [then] code] [else code] end
unless condition code [else code] end
Die grundlegende Form eines "if" sieht folgendermaßen aus und muß mit end aufhören:
if some_condition_expression # This section executed if some_condition_expression is true end
Das Schlüsselwort else kann verwendet werden um einen Bereich zu kennzeichnen, der ausgeführt werden soll, wenn der "if"-Ausdruck nicht zu "wahr" evaluiert wird. Nur ein else darf in einer "if"-Anweisung auftauchen:
if some_condition_expression # This section executed if some_condition_expression is true <b3>else</b3> # This section executed if some_condition_expression is false end
Das Schlüsselwot elsif kann verwendet werden, um mehrere sich gegenseitig ausschließende Bedingungen zu erzeugen. Wenn das initiale if nicht "wahr" ist, werden alle folgenden elsif in absteigender Reihenfolge solange ausgewertet, bis eines zu "wahr" evaluiert werden kann. Wenn keines als "wahr" evaluiert wird, wird die else-Sektion verwendet, sofern eine vorhanden ist:
if cond_one # cond_one is true elsif cond_two # cond_one is not true and cond_two is true elsif cond_three # cond_one is not true and cond_two is not true and cond_three is true else # cond_one, cond_two and cond_three are all not true end
Bei unless, kann nur else, aber nicht elsif verwendet werden.
Die if-Anweisung kann ein then haben, aber das wird normalerweise weggelassen.
if some_condition_expression then # ... elsif some_other_condition_expression then # ... end
Soll die "if"-Anweisung auf eine Zeile beschränkt werden, muß then verwendet werden.
if some_condition_expression then do_something end