File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Java in General and the fly likes Short-Circuit Evaluation Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Short-Circuit Evaluation " Watch "Short-Circuit Evaluation " New topic
Author

Short-Circuit Evaluation

Satyajeet Kadam
Ranch Hand

Joined: Oct 19, 2006
Posts: 215
As per K&M book , Short circuit operators are applied to boolean opernads.

Follwing link is shwows an example where && operator is applied on integer operands?

This example is

from:http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op2.html


class ConditionalDemo1 {
public static void main(String[] args){
int value1 = 1;
int value2 = 2;
if((value1 == 1) && (value2 == 2)) System.out.println("value1 is 1 AND value2 is 2");
if((value1 == 1) || (value2 == 1)) System.out.println("value1 is 1 OR value2 is 1");

}
}

Q1)Why this operator is applied on integer operands?
Q2)Can you tell me working of &,&&,|,|| and also the difference in
each of them? with code?
Q3) Is there any trick to remmber this stuuf
Jeremy Botha
Ranch Hand

Joined: Feb 16, 2005
Posts: 125
Hi.

In the example you've pased, the && and || operators are applying to boolean expressions.

== is the equality operator; it evaluates the left and right hand operands, returning true if they are equal or false otherwise.

So, the expressions you have listed reduce as follows:

and


with regards to Q2:

& and | are bitwise operators, whereas && and || are boolean operators.

& and | apply at the bit level of the operands; that means that they evaluate every bit of the lhs operand against the corresponding bit in the rhs operand:


will print out


You can easilly check the above results by writing out the binary representation of 3 and 7, then doing bitwise anding and oring between the digits.

Q3: Not really, it's just something you should know.

Jeremy


McFinnigan? Never heard of him. Nobody here but us chickens...<br /> <br />SCJP for Java 1.4<br />SCJD for Java 5.0
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24166
    
  30

"&" and "|" can actually also be applied to boolean arguments, in which case they are equivalent to "&&" and "||" except that they don't do short-circuit evaluation: they always evaluate both arguments.


[Jess in Action][AskingGoodQuestions]
Jeremy Botha
Ranch Hand

Joined: Feb 16, 2005
Posts: 125
True.

Jeremy
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Short-Circuit Evaluation
 
Similar Threads
Logical operators (&& and ||)
Logical Operators
Bitwise & and | Siera Bates
Difference between l (logical OR) and II (Shortcircuited OR)
& and &&