if..elsif..end / unless..end

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