[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)