[x = true and false] は思ったとおりにならない
true and false # => false
false and true # => false
true and true # => true
false and false # => false
true && false # => false
false && true # => false
true && true # => true
false && false # => false
x = true and false # => false
p x # => true !!!!!!!!!!
x = false and true # => false
p x # => false
x = true and true # => true
p x # => true
x = false and false # => false
p x # => false
x = true && false # => false
p x # => false
x = false && true # => false
p x # => false
x = true && true # => true
p x # => true
x = false && false # => false
p x # => false
理由
- and
- or
は=より優先順位が低いためx = true and falseでは
- x = true
- true and false (結果は捨てられる)
という現象が起きてしまい、xはfalseにならない。
解決策
- &&を使う
- x = (true and false)