Java Programming - Flow Control - Discussion

Discussion Forum : Flow Control - General Questions (Q.No. 3)
3.
public void test(int x) 
{ 
    int odd = 1; 
    if(odd) /* Line 4 */
    {
        System.out.println("odd"); 
    } 
    else 
    {
        System.out.println("even"); 
    } 
}
Which statement is true?
Compilation fails.
"odd" will always be output.
"even" will always be output.
"odd" will be output for odd values of x, and "even" for even values.
Answer: Option
Explanation:

The compiler will complain because of incompatible types (line 4), the if expects a boolean but it gets an integer.

Discussion:
15 comments Page 2 of 2.

Prashant said:   1 decade ago
Here if (odd) expects value of odd variable.

As declared earlier value of odd is 1 then condition holds true. Odd should be printed. Didn't understand why it is compiler error.

Manoj said:   1 decade ago
Here if (odd) expects value of odd variable.

As declared earlier value of odd is 1 then condition holds true. Odd should be printed. Didn't understand why it is compiler error.

Bandana said:   1 decade ago
In line 4. There is no Boolean condition. It just an integer. That's why it is compile error.

Shantanu said:   1 decade ago
What when we use while (1)?

That time it gives exact output in c++. It is not allowed in java.

Vikash rai said:   6 years ago
Integer can not behave like boolean. And there is not a complete condition statement in if condition.

So it will throw compilation error.

Thanks.


Post your comments here:

Your comments will be displayed after verification.