| Author |
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; ++count; } public static void main(String []args){ Beverage ba = new Beverage(); ba.set(ba.b,0); ba.set(ba.b,2); ba.test(); } void test() { if(b[0]&& b[1] | b[2]) count++; if(b[1] && b[(++count -2)]) count +=7; System.out.println ("Count =" +count); } }
|
 |
jerry sharma
Greenhorn
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]) count++; cond is true hence count becomes 3 so in SOP ans should be 3 regards jerry
|
 |
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 ]
|
 |
 |
|
|
subject: plz Explain me line by line this code
|
|
|