&&とか||の返り値

&&と||の返り値に関して調べたので、メモ。

1 || 2
#=> 1

1 && 2
#=> 2


このようになるらしい。


というのも、

1 || 2
# この評価の時に、まずは、1をture/falseで評価するので、trueと評価され1が返る
# && の評価も同様のロジック


直感的に、以下のように記述したくなることがあるらしいので、要注意。。。

if hoge == (1||2)
  p "if文を通過"
end

上記の場合、hoge #=> 2のときは、falseを返すことになる。


条件分岐するときは、条件式を二つ書くか、case使えばいいと言う事になる。

if hoge == 1 || hoge == 2
  p "if文を通過"
end

case hoge
when 1, 2
  p "if文を通過"
end


最後までお読みいただきありがとうございました。