逻辑运算符
1. 短路与&&:当第一个是false时,不会再去判断第二个,会直接输出FALSE。
逻辑与&:不管如何,始终对两个都进行判断。
综上,短路与会比逻辑与效率高,所以实际开发一般用短路与 。短路或(||)和逻辑或(|)也是一样,只不过短路与是第一个为ture时就不判断第二个,同理,短路或比逻辑或效率高。
注意,短路与不进行判断第二个,这意味着倘若第二个条件是一个运算式,并且第一个条件是假,那第二个条件的运算式将不会进行运算,比如 60>100&&y++,将不会进行y的自增。同时,不管是或还是与,都有一个特性,即在进行逻辑判定一个条件时,若是自增自减,那么不管有无执行if语句块,都会保留自增自减的结果,比如,
public class test{ public static void main(String[] args){ int x = 1; int y = 2; if(x++ > 10 && y++ > 10) x++; System.out.println(x); } }
这个最终输出结果是2,哪怕这个if的判断条件是假的,没有进入if 的语句块,x++始终会进行,不会受影响。自增自减都如此。
2. 逻辑异或(^),比如 a ^ b,当a和b不同时,结果为true,反之为false。