E:\javacode>javac A.javaE:\javacode>java A
trueE:\javacode>

解决方案 »

  1.   

    输出true注意你那个(b = true)不是( b == true ),因此x = 8是必执行的。
      

  2.   

    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输出}
    }
      

  3.   

    楼上的说分析的条理清楚,也指出了考点。但最后结果我觉得有点问题。x++>>>2>=2
    此时x = 8,按运算符优先级: 
    1. x++结果是8(但此时x = 9)
    2. 9 >>> 2 无条件右移后结果正好是2
    3. 2 >= 2 所以结果为true
      

  4.   

    对不起,上面第2点写错了,是:2. 8 >>> 2 无条件右移后结果正好是2