//逻辑与 & int a = 10; int b = 20; int c = 30; System.out.println(a < b & b < c); //true & true = true System.out.println(a < b & b > c); //true & false = false System.out.println(a > b & b < c); //false & true = false System.out.println(a > b & b > c); //false & false = false
逻辑或 |
//逻辑与 | System.out.println(a < b | b < c); //true | true = true System.out.println(a < b | b > c); //true | false = true System.out.println(a > b | b < c); //false | true = true System.out.println(a > b | b > c); //false | false = false
逻辑异或 ^
//逻辑异或 ^ 两边相同为false,两边不同为true System.out.println(a < b ^ b < c); //true ^ true = false System.out.println(a < b ^ b > c); //true ^ false = true System.out.println(a > b ^ b < c); //false ^ true = true System.out.println(a > b ^ b > c); //false ^ false = false
&&和&的区别
最终结果是相同的,&&可以提高一定的效率。
&&具有短路效果,如果左边是false,右边不执行。&无论左边是否为false,右边都要执行。
||具有短路效果,如果左边为true,右边不执行。|无论左边是否为true,右边都要执行。
int x = 3; int y = 4; //System.out.println((++x == 3) & (++y == 4)); //false & false = false //System.out.println("x = " + x); //x = 4 //System.out.println("y = " + y); //y = 5