逻辑运算符 : &—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或
&和&& :两边都为true结果为true
|和|| :两边有一个为true结果为true
! : 取反
^ : 相同为false,不同为true
说明:
1.逻辑运算符运算的数据类型是boolean类型
2.逻辑运算符的结果为boolean类型
public class LogicTest{ public static void main(String[] args){ boolean bo = true; boolean bo2 = false; System.out.println(bo & bo2);//false System.out.println(bo && bo2);//false System.out.println(bo | bo2);//true System.out.println(bo || bo2);//true System.out.println(bo ^ bo2);//true System.out.println(!bo2);//true System.out.println("-------------------------------"); /* [面试题] & 和 &&的区别?|和||的区别? & 和 &&的区别? & : 左边的结果无论是true还是false右边的式子都会执行 && : 左边的结果为true的时候右边的式子正常执行(因为右边的结果会影响最终结果) 左边的结果为false的时候右边的式子不执行(因为右边的结果不会影响最终结果) |和||的区别? | : 左边的结果无论是true还是false右边的式子都会执行 || : 左边的结果为false的时候右边的式子正常执行(因为右边的结果会影响最终结果) 左边的结果为true的时候右边的式子不执行(因为右边的结果不会影响最终结果) */ System.out.println("---------------------& 和 &&-----------------"); boolean bool = false; int a = 5; if(bool & (++a > 2)){ //注意点 : ++有没有执行 System.out.println("true"); } System.out.println("bool = " + bool + " a=" + a); int a2 = 5; if(bool && (++a2 > 2)){ //注意点 : ++有没有执行 System.out.println("true"); } System.out.println("bool = " + bool + " a2=" + a2); System.out.println("---------------------| 和 ||-----------------"); boolean bl = true; int n = 5; if(bl | (++n > 2)){ //注意点 : ++有没有执行 System.out.println("true"); } System.out.println("bl = " + bl + " n=" + n); int n2 = 5; if(bl || (++n2 > 2)){ //注意点 : ++有没有执行 System.out.println("true"); } System.out.println("bl = " + bl + " n2=" + n2); } }