&:逻辑与,只有两个表达式都是true是结果才是真
public static void main(String[] args){
int i=1;
int j=2;
int k=3;
System.out.println((i>j) & (i>k));//false & false
}
|:逻辑或,有true则为true
System.out.println((i>j) | (i>k));
^:逻辑异或,相同为false不同为true
System.out.println((i>j) ^ (i>k));
!:逻辑非,与本来结果相反
System.out.println(! (i>k));
短路逻辑运算符
&&:短路与,有false则为false
System.out.println((i>j) && (i>k));
||:短路或,有true则为true
System.out.println((i>j) || (i>k));
&&和&的区别
System.out.println((i++>10) & (i>10));
System.out.println((i++>10) && (i>10));
System.out.println(i);
System.out.println(j);
&&的左边是false那么右边就不再执行,而&会再执行右边
||和|的区别
||的左边为true那么右边就不再执行