1&、&&之间的区别
/*
测试 & / && 之间的区别
相同点:
1.结果都相同:有一个为false,结果就是false
2.当 & / && 左边的表达式都为true时,右边的表达式都会去执行
不同点:
1.当左边的表达式为false时,
& 依然会执行右边的表达式。如代码中的a = 11
&& 则不会去执行右边的表达式。如代码中的a = 10
*/
class Different{
public static void main(String[] args) {
int a = 10;
int b = 11;
/*
if ( a == 11 & a++ == 10){
System.out.println("b = " + b );
}else {
System.out.println("a = " + a ); a = 11
}
*/
if ( a == 11 && a++ == 10){
System.out.println("b = " + b );
}else {
System.out.println("a = " + a ); a = 10
}
}
}
2.| / ||之间的区别
经过上述& 和 && 代码的演示,触类旁通 | 和 || 之间的区别是:
相同点:
1.结果都相同:有一个为true,结果就是true。
2.当 | 和 || 左边的表达式为false时,右边的表达式都会去执行。
不同点:
1.当 | 和 || 左边的表达式为 true时
| 依然会执行右边的表达式。
|| 则不会去执行右边的表达式。
3.面试题
class 逻辑运算符的面试题 {
public static void main(String[] args) {
boolean x = true;
boolean y = false;
short z = 42;
// if (y == true) // 这里注释的话,Z = 43 因为 y != true,所以第一个if 语句不执行了
if ( (z++ == 42) && (y = true)){
z++;
}
if ((x = false || ++z == 45 )){
z++;
}
System.out.println("z : " + z); // z = 46
}
}