Difficulty: Easy
Correct Answer: Compilation fails
Explanation:
Introduction / Context:
This tests Java's strict type system for assignments and the difference between assignment (=) and comparison (==) within expressions.
Given Data / Assumptions:
Concept / Approach:
In Java, assigning a double to an int without an explicit cast is a compile-time error (possible lossy conversion). Also, (x = y) would have type int (the left-hand type) if it were legal, which is not boolean.
Step-by-Step Solution:
Verification / Alternative check:
Replace with boolean b = (x == y); or with a cast and comparison to observe correct usage.
Why Other Options Are Wrong:
They assume the code runs and produces true/false or an exception; the compiler prevents execution.
Common Pitfalls:
Accidentally using = instead of ==, and forgetting Java does not allow implicit narrowing conversions from double to int.
Final Answer:
Compilation fails
Discussion & Comments