是true?class Test{
public static void main(String args[]){
int x=0;
boolean b1,b2,b3,b4;
b1=b2=b3=b4=true;
//x=(b1|b2&b3^b4)?x++:--x;
x=x++;
System.out.println(x);
}
}b1|b2&b3^b4为什么为true ?
^这个运算不是相同为0不同为1吗?
前三个都为1然后和b4^,不是为false 了吗?

解决方案 »

  1.   

    class Test{
    public static void main(String args[]){
    int x=0;
    boolean b1,b2,b3,b4;
    b1=b2=b3=b4=true;
    //x=((b1|b2)&(b3^b4))?x++:--x;
    x=x++;
    System.out.println(x);
    }
    }
      

  2.   

    不死鱼的意思是先^再&后|?
    这样的话,书本又错了一次。
      

  3.   

    我测试了一下
    ^比|高
    &比|高
    但是^&想不到这么测试~~
      

  4.   

    x=(b1|b2&b3^b4)?x++:--x;
    应该是先计算b2&b3,然后用计算的结果与b4进行^计算,然后再用结果跟b1进行|计算。
    因为b1为true,所以无论前面几步的计算结果如何,结果都为true。