Java Programming - Operators and Assignments - Discussion

Discussion Forum : Operators and Assignments - Finding the output (Q.No. 10)
10.
What will be the output of the program?
class SSBool 
{
    public static void main(String [] args) 
    {
        boolean b1 = true;
        boolean b2 = false;
        boolean b3 = true;
        if ( b1 & b2 | b2 & b3 | b2 ) /* Line 8 */
            System.out.print("ok ");
        if ( b1 & b2 | b2 & b3 | b2 | b1 ) /*Line 10*/
            System.out.println("dokey");
    }
}
ok
dokey
ok dokey
No output is produced
Compilation error
Answer: Option
Explanation:

The & operator has a higher precedence than the | operator so that on line 8 b1 and b2 are evaluated together as are b2 & b3. The final b1 in line 10 is what causes that if test to be true. Hence it prints "dokey".

Discussion:
21 comments Page 3 of 3.

MUNNA PRAJAPATI said:   3 years ago
&& operator checks the next condition if the first will be true.
& operator checks all conditions whether the first is true or false.

So at Line 8 final output of if the condition expression is false
And at Line 10 final output of if the condition expression is true.
Therefore output would be "dokey".


Post your comments here:

Your comments will be displayed after verification.