Consider the following code.
int num = 10; boolean b = ((num = 50) > 5); // Assigns true to b
What is the value of num?
50
In the expression ((num = 50) > 5), the expression, (num = 50), is executed first.
It assigns 50 to num and returns 50, reducing the expression to (50 > 5), which in turn returns true.
If you use the value of num after the expression num = 50 is executed, its value will be 50.
public class Main { public static void main(String[] args) { int num = 10; boolean b = ((num = 50) > 5); // Assigns true to b System.out.println(b);//from w w w. java 2 s.c o m System.out.println(num); } }