输出true注意你那个(b = true)不是( b == true ),因此x = 8是必执行的。
public class A { public static void main(String[] args) { boolean b = false; int x = 7; if (b = true) { x=8; } ~~~~~~~~~~~~~注意这里的“=”,此时x=8System.out.println(x++>>>2>=2); 因为是x++而不是++x,所以此时按照x=8计算,将x右移两位(左边补零,因为是>>>),此时x=2,所以x>=2结果为true输出} }
public static void main(String[] args) {
boolean b = false;
int x = 7;
if (b = true) { x=8; }
~~~~~~~~~~~~~注意这里的“=”,此时x=8System.out.println(x++>>>2>=2);
因为是x++而不是++x,所以此时按照x=8计算,将x右移两位(左边补零,因为是>>>),此时x=2,所以x>=2结果为true输出}
}
此时x = 8,按运算符优先级:
1. x++结果是8(但此时x = 9)
2. 9 >>> 2 无条件右移后结果正好是2
3. 2 >= 2 所以结果为true