LoginSignup
19
17

More than 5 years have passed since last update.

[Ruby] コードを短くする為の論理和と論理積(と排他的論理和)のおさらい

Last updated at Posted at 2015-03-31

なんとなく覚えてるし特に気にしなかった論理和や論理積の演算。
おさらいしてみました。

def check
  true if hoge.present? && fuga.present?
end

↑とかやりがちでしたが、短くできそうです。

def check
   hoge.present? && fuga.present?
end

以下おさらいです。

def hoge

  # 論理積 AND
  false && false #=> false
  false && true #=> false
  true && false #=> false
  true && true #=> true

  # 論理和 OR
  false || false #=> false
  false || true #=> true
  true || false #=> true
  true || true #=> true

  # 排他的論理和 XOR ^
  false ^ false #=> false
  false ^ true #=> true
  true ^ false #=> true
  true ^ true #=> false


end

FEH14S_8_a1.gif
引用: (http://mt-net.vis.ne.jp/images/489/FEH14S_8_a1.gif)

論理積 AND &&

59.1.PNG
引用(http://www.wisdomsoft.jp/images/59.1.PNG)

論理和 OR ||

59.3.PNG
引用(http://www.wisdomsoft.jp/images/59.3.PNG)

注意

rubyのandやorはtrue, falseだけを返すわけではなく、式の結果がtrueかfalseか決定した段階での項の値が返る。

a = nil
b = 10

a || b # 10

a && b # nil

排他的論理和 XOR

59.5.PNG
引用(http://www.wisdomsoft.jp/images/59.5.PNG)

References

19
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17