&& 短路与,当操作数1的结果可以判断出总体结果时,就不会运行操作数2的计算了。
&& 短路与,当操作数1的结果可以判断出总体结果时,就不会运行操作数2的计算了。
int a=10,b=10;
System. out. println(a>20 && (++b)>10 );//false & true false
System. out. println(b);//10
System. out. println(a>20 & (++b)>10 );//false & true false
System. out. println(b);//11
&与&&区别:&不短路,&&短路
public class LogicalOperator{
public static void main(String[] args){
//int age = 80;
//boolean isAdult = age >= 18;
//boolean isZhong = age >= 25 && age <= 35;// &&与
//boolean isZhong = 25<= age <=35;// 错误
//boolean isCannotPlay = age<=17 || age>=80;// ||逻辑或 或者 or
//System.out.println(isCannotPlay);
//System.out.println(isAdult);
//System.out.println(isZhong);
//int a = 8,b = 3, c = 9;
//System.out.println(a>b && a>c);
//System.out.println(a>b && a<c);
//System.out.println(a<b && a>c);
//System.out.println(a<b && a<c);
//System.out.println(a>b & a>c);
//System.out.println(a>b & a<c);
//System.out.println(a<b & a>c);
//System.out.println(a<b & a<c);
//System.out.println(a>b || a>c);
//System.out.println(a>b || a<c);
//System.out.println(a<b || a>c);
//System.out.println(a<b || a<c);
//stem.out.println(a>b ^ a>c);
//System.out.println(a>b ^ a<c);
//System.out.println(a<b ^ a>c);
//System.out.println(a<b ^ a<c);
//System.out.println(!(a>b) );//true
//System.out.println(!(a<b) );//false
int a = 10, b = 10;
System.out.println(a>20 && (b++)>11);
System.out.println(b);
}
}
&&(短路与) :A&&B :只要A为false,那么B就不用进行判断
& 与 :A&B: A与B都要进行判断;
|| 与 |
逻辑运算符短路
无短路功能
&:
|:
短路,
判断前面的操作数,若操作数为false则不运行后面的。
切直接显示结果为false
若操作数为truc则运行后面的。
false短路表示不运算操作数2
false错误
true正确
&& (短路与)
| | (短路或)
短路与不短路的区别:
当可以通过操作数1判断出来结果的时候,是否运算操作数2(短路表示不运算操作数2)
&&短路 第一个为true,后面就不用管了
& 要两个一起判断
&:不会短路 会继续执行表达后面表达式
|
& 与运算 两边表达式都计算(同true为true,同false为false)
&& 短路与 若左边表达式为false,右边表达式不执行;若左边表达式为true,继续判断右边表达式,同true为true
|| 或运算 一真为真
逻辑运算中的短路
&& 短路 与
|| 短路 或
能根据操作数1判断结果,则不运行操作数2
不能根据操作数1判断结果,则继续运行操作数2
&&(短路与)
当可以通过操作数1判断出来结果的时候,是否运算操作数2(短路表示不运算操作数2)
&& 短路与 结果优先判断操作数1
& 运算所有结果