Ruby は、式の形式および式の修飾子の形式の両方で、標準的な if 条件を特色としています。unless condition は、どのようなコンテキストでも if not condition と同等です。
if/unless 式は、最後の式の値を戻します。
if condition [then] code [elsif condition [then] code] [else code] end
unless condition code [else code] end
if の基本的な式のフォームは次のようになります。また、end で終わる必要があります:
if some_condition_expression # このセクションは some_condition_expression が真の場合に実行される end
else キーワードを使うと、if 条件式が偽と評価された場合に実行されるセクションを追加できます。次に示すように、1 つの if 式で利用できる else は 1 つだけです。
if some_condition_expression # このセクションは some_condition_expression が真の場合に実行される else # このセクションはsome_condition_expression が偽の場合に実行される end
elsif キーワードを使うと、相互に排他的な条件を複数作成できます。最初の if 条件が真でない場合、真の条件が見つかるまで後続の各 elsif 条件が降順に評価されます。いずれも真でない場合、else 節があれば、それが実行されます:
if cond_one # cond_one が真 elsif cond_two # cond_one が真でなく cond_two が真 elsif cond_three # cond_one が真でなく cond_two が真でなく cond_three が真 else # cond_one、cond_two、および cond_three はすべて真ではない end
unless の場合、elsif は定義できず、else だけです。
if 式には任意で then を追加できますが、通常は省略されます。
if some_condition_expression then # ... elsif some_other_condition_expression then # ... end
ただし、if 式を 1 行にする場合は then が必要です。
if some_condition_expression then do_something end