Jim Freeze wrote:
| -Case1
| n = 4
| s = (n == 3 or n == 5)
| puts s
| => false
| -End Case1
|
| -Case2
| n = 4
| puts (n == 3 or n == 5)
| => if:2: parse error
| puts (n == 3 or n == 5)
|                ^
| if:2: parse error
| -End Case2
|
| -Case3
| n = 4
| puts (n == 3 || n == 5)
| => false
| -End Case3

And these additional cases:

-Case4
n=3
puts n==3 or n==5 # => true
puts((n==3 or n==5)) # => true
-End Case4

-Case5
n=3
puts n==3 or n==5 # => false
n=5
puts((n==3 or n==5)) # => true
-End Case5

It's due to the lower precendence of "or":

In case 4 & 5 without the brackets, it's because "puts n ==3" gets higher
precendence than "n ==5". Always use brackets when in doubt...

With the double brackets, the expression with "or" is enforced higher
precendence before being given as parameter to "puts", just as if you had
used "||" on its own. That's why case 1 also works.

However, I don't understand the parse error in case 2.

Regards,

Dennis Decker Jensen