File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes plz Explain me line by line this code Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "plz Explain me line by line this code " Watch "plz Explain me line by line this code " New topic

plz Explain me line by line this code

Akhilesh Yadav
Ranch Hand

Joined: Apr 04, 2006
Posts: 46
class Beverage {

boolean [] b = new boolean[3];
int count = 0;

void set(boolean [] x , int i ){
x[i]= true;

public static void main(String []args){
Beverage ba = new Beverage();

void test() {
if(b[0]&& b[1] | b[2])
if(b[1] && b[(++count -2)])
count +=7;
System.out.println ("Count =" +count);

jerry sharma

Joined: Mar 30, 2006
Posts: 23
hi Akhilesh
le me do a bit 2 exp
whenn u call the set method first time in main
coun becomes 1
second time it becomes 2

on calling test method
if(b[0]&& b[1] | b[2])
cond is true

count becomes 3

so in SOP ans should be 3


Shaliey Gowtham
Ranch Hand

Joined: Mar 20, 2006
Posts: 104
b[] = new boolean[3] gives the default values "false" to teh three elements

set() modifies the b[0] = b[2] = true;
and the value of count = 2;

so the first condition is ( true && false || true) is "true"
and count is incremented to 3;

Then the next condition is (false && b[++count-2]) evaluates only upto the first false, since "&&" is short circuit and.
So the count remains "3".

If the expression has been (true && b[++count-2]) then the result is "11"
[ April 04, 2006: Message edited by: Shaliey G ]
I agree. Here's the link:
subject: plz Explain me line by line this code
It's not a secret anymore!