Multiple choice

What will be the output of the program?

public class If2
{
static boolean b1, b2;
public static void main(String [] args)
{
int x = 0; if ( !b1 ) /* Line 7 */
{
if ( !b2 ) /* Line 9 */
{
b1 = true; x++;
if ( 5 > 6 ) { x++;
}
if ( !b1 ) x = x + 10;
else if ( b2 = true ) /* Line 19 */ x = x + 100;
else if ( b1 | b2 ) /* Line 21 */ x = x + 1000;
}
}
System.out.println(x);
}
}

  1. 0

  2. 1

  3. 101

  4. 111

  5. 110

Reveal answer Fill a bubble to check yourself
C Correct answer
Explanation

As instance variables, b1 and b2 are initialized to false. Thus, if tests on lines 7 and 9 are successful, so b1 is set to be true and x is incremented. The next test to succeed is on line 19 (note that the code is not testing to see if b2 is true, it is setting b2 to be true). Since line 19 was successful, subsequent else-if's (line 21) will be skipped. So, this is correct choice.