|| is not "exclusive or". It is just "inclusive or" with short-circuit evaluation -- it doesn't evaluate the second operand if the first is already true. The result from (n < 0) || (n != 0) is EXACTLY THE SAME as the result from (n < 0) | (n != 0). The first expression is slightly more efficient when executed, that's all.

Exclusive or is written as ^, and is true only when the two operands are logically different (one is true and the other is false). (n < 0) ^ (n != 0) will be true when either of the following conditions holds:
n < 0 AND n = 0 (i.e., never)
not(n < 0) AND n != 0 (i.e., n > 0)

=S

Greg Nudelman wrote:

May the problem be the Java's nature of the "OR" || which is "Exclusive OR", i.e.

a || b

means that if a is true, b is not evaluated. Maybe you're looking for "Inclusive OR" i.e. if a or b, both getting evaluated, which in Java is:

a | b

Although, frankly, I do not see much of a point for this here...

IMHO,

if( n <\<> 0)

=>

if(n < 0)

in Java will cover both conditions, as the number n can not be sulmonteniously less then 0 and equals to 0.

Yah? Or am I missing something?

Greg


-----Original Message-----
From: Spencer W. Thomas [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, November 26, 2002 2:13 PM
To: JDJList
Subject: [jdjlist] Re: In Java is this a valid expression (if( n <\<> 0
))


Arrgh. I meant to say "whenever n is NOT 0".

Spencer W. Thomas wrote:

>
>
> [EMAIL PROTECTED] wrote:
>
>> No. I'm assuming you are trying to say "if (n is less than or not
>> equal to 0)...."
>> You can try this instead:
>>
>> int n={some integer};
>>
>> if (n < 0 || n != 0)
>> System.out.println("foo happens here");
>> else
>> System.out.println("bar happens here");
>
>
> Try this. It will print "foo happens here" only when n is 0.
>
>>
>>
>> However, a clearer way to code it is this:
>>
>> if (n >= 0)
>> System.out.println("bar happens here");
>> else
>> System.out.println("foo happens here");
>> ____________________________________________________
>
>
>
>
> ____________________________________________________
> To change your JDJList options, please visit:
> http://www.sys-con.com/java/list.cfm
>
> Be respectful! Clean up your posts before replying
> ____________________________________________________



____________________________________________________
To change your JDJList options, please visit:
http://www.sys-con.com/java/list.cfm

Be respectful! Clean up your posts before replying
____________________________________________________

____________________________________________________
To change your JDJList options, please visit:
http://www.sys-con.com/java/list.cfm

Be respectful! Clean up your posts before replying
____________________________________________________

____________________________________________________
To change your JDJList options, please visit:
http://www.sys-con.com/java/list.cfm

Be respectful! Clean up your posts before replying
____________________________________________________

Reply via email to