1. && 和 & 的区别
1.1 &&
名称:逻辑与。
作用:用于连接两个运算符,当两个运算符都为true时,此表达式最终为true。否则为false。
例:
10 > 9 && 9 < 10 符号两边都为true,所以此表达式最终结果为true。
10 > 9 && 9 > 10 符号左边为true,右边为false,所以此表达式最终结果为false。
1.2 && 和 & 的区别
相同点:
都是用于连接两个运算符,当两个运算符都为true时,此表达式最终为true。否则为false。
不同点:
&& 在执行的过程中,会先执行符号左边的运算,当左边运算为true时,继续执行右边的运算,但是当左边运算为false时会直接返回false,不再执行右边的运算。
但 & 在执行的过程中,不管左边的运算结果为何值,都会继续执行右边的运算。
例:
int a = 1;
boolean b = a > 1 && a++ > 1;
System.out.println("a = "a+ ",b = " + b);
代码的最终运行结果为:a = 1,b = false
int a = 1;
boolean b = a > 1 & a++ > 1;
System.out.println("a = "a+ ",b = " + b);
代码的最终运行结果为:a = 2,b = false
2. || 和 | 的区别
2.1 ||
名称:逻辑或。
作用:用于连接两个运算符,当两个运算符都为false时,此表达式最终为false。否则为true。
例:
10 < 9 && 9 > 10 符号两边都为false,所以此表达式最终结果为false。
10 > 9 && 9 > 10 符号左边为true,右边为false,所以此表达式最终结果为true。
2.2 || 和 | 的区别
相同点:
都是用于连接两个运算符,当两个运算符都为false时,此表达式最终为false。否则为true。
不同点:
|| 在执行的过程中,会先执行符号左边的运算,当左边运算为false时,继续执行右边的运算,但是当左边运算为true时会直接返回true,不再执行右边的运算。
但 | 在执行的过程中,不管左边的运算结果为何值,都会继续执行右边的运算。