先看代码

    1. public class LogicalOperator {
    2. public static void main(String[] args) {
    3. int i = 1;
    4. boolean b = !(i++ == 3) ^ (i++ == 2) && (i++ == 3);
    5. System.out.println(b);
    6. System.out.println(i);
    7. }
    8. }

    结果是b为false,i为3.
    ^异或,相同为false,不同为true。而&&这个是and的意思,条件比较时,只要前面的条件是false,那么后面的条件就不用运算了,所以最后i是3