and/or 演算子

x = "hoge" &&  puts x # -> SyntaxError
y = "fuga" and puts y # -> "fuga"

&& は優先度が高くて、前者のコードは x = ("hoge" && puts) x と解釈されてしまう。

and は優先度が低いので、後者のコードは (y = "fuga") and (puts y) と解釈される。