4-4-3 後置if、unlessを通常の条件分岐と比較して理解を深めよう

通常のif文と後置ifの対応

後置ifは、if〜endを使った通常のif文に書き換えることができます。以下の後置ifとif文は同じ処理となります。

  • 後置if

    条件式がtrueの場合に実行したい処理 if 条件式
    
  • 通常のif文

    if 条件式
      条件式がtrueの場合に実行したい処理
    end
    

通常のunless文と後置unlessの対応

後置unlessは、unless〜endを使った通常のunless文に書き換えることができます。以下の後置unlessとunless文は同じ処理となります。

  • 後置unless

    条件式がfalseの場合に実行したい処理 unless 条件式
    
  • 通常のunless文

    unless 条件式
      条件式がfalseの場合に実行したい処理
    end
    

論理演算子

これまでみてきた例では条件を1つだけ記述する方法でした。たとえば「変数aが1に等しい」ことを確認するためにはa == 1という条件式です。

しかし、時にはより複雑な条件を記述したい場合もあるでしょう。この場合に有効なのが論理演算子です。

論理演算子を用いると、たとえば「変数aが0より大きく、かつ、2より小さい」など、複数の条件を表現することができます。

論理演算子には&&||!の3つがあります。たとえば条件式A && 条件式Bと使用します。

それぞれの演算子の意味は以下の通りです。

論理演算子 使用例 評価結果
&& 条件式A && 条件式B 条件式Aがtrue、かつ、条件式Bがtrue
|| 条件式A || 条件式B 条件式Aがtrue、または、条件式Bがtrue
! !条件式A 条件式Aがfalse(条件式Aの否定)

たとえば、a = 1を代入した場合に、論理演算子&&を使用した以下をirbで実行するとtrueが返却されます。

irb(main):001:0> a = 1
=> 1
irb(main):002:0> a > 0 && a < 2 # 変数aが0より大きく、かつ、2より小さい
=> true