java中逻辑&与短路&&的区别
1.实例
1.1实例一(&和&&符号之前的是true)
1.1.1实例
boolean boolean1 = true;
int num1 =10;
if(boolean1 & num1++>0){
System.out.println("我家住在东北");
System.out.println("num1="+num1);
}else {
System.out.println("我家住在西北");
System.out.println("num1="+num1);
}
System.out.println("-------------------------------------");
int num2 =10;
if(boolean1 && num2++>0){
System.out.println("我家住在东北");
System.out.println("num2="+num2);
}else {
System.out.println("我家住在西北");
System.out.println("num2="+num2);
}
1.1.2运行结果
我家住在东北
num1=11
-------------------------------------
我家住在东北
num2=11
1.2实例二(&和&&符号之前的是false)
1.2.1实例二
boolean boolean1 = false;
int num1 =10;
if(boolean1 & num1++>0){
System.out.println("我家住在东北");
System.out.println("num1="+num1);
}else {
System.out.println("我家住在西北");
System.out.println("num1="+num1);
}
System.out.println("-------------------------------------");
int num2 =10;
if(boolean1 && num2++>0){
System.out.println("我家住在东北");
System.out.println("num2="+num2);
}else {
System.out.println("我家住在西北");
System.out.println("num2="+num2);
}
1.2.2 运行结果
我家住在西北
num1=11
-------------------------------------
我家住在西北
num2=10
2.结论
2.1相同点
1.逻辑&和短路&&的运算结果是相同的。
2.当&和&&符号之前的是true,都会计算后面的结果。
2.2不同点
1.当&和&&符号之前的是false时,逻辑运算符会继续执行逻辑运算符后面的内容,而短路运算符则不会执行。
注:短路运算符&&和逻辑运算符&的主要区别是当运算符前面的短路了,逻辑运算符是不撞南墙不回头,而短路运算符则是知道此路不通就立即返回。
3.注意
在实际情况下一般是使用的短路运算符,因为短路之后的可以不用计算,则可以省下一部分的计算资源。