先看代码
public class LogicalOperator {
public static void main(String[] args) {
int i = 1;
boolean b = !(i++ == 3) ^ (i++ == 2) && (i++ == 3);
System.out.println(b);
System.out.println(i);
}
}
结果是b为false,i为3.^
异或,相同为false,不同为true。而&&这个是and的意思,条件比较时,只要前面的条件是false,那么后面的条件就不用运算了,所以最后i是3。