Win a copy of The Way of the Web Tester: A Beginner's Guide to Automating Tests this week in the Testing forum!

# plz Explain me line by line this code

Ranch Hand
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
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
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 ]