Java基础篇笔记(三) ---浅谈逻辑与(或)和短路与(或)

本文探讨Java中逻辑与(&)、逻辑或(|)、短路与(||)和短路或(&&)的区别。短路运算符在确保结果确定后不再评估后续表达式,从而节省运算。在实际编程中,为了效率和避免不必要的计算,通常推荐使用短路运算符,并根据表达式的预期结果将更可能导致错误或正确的部分置于前面。
关于逻辑与(逻辑或)和短路与(短路或)的探讨。


逻辑与(逻辑或)和短路与(短路或)都是逻辑运算符,用符号表示如下:
逻辑与   &
逻辑或   |
短路与    &&
短路或   ||


逻辑与(逻辑或)和短路与(短路或) 计算结果都是一样的,不多说了。那么区别在哪呢。


先以逻辑与和短路与作讨论,看如下代码:


public class Test{
	public static void main (String args[]){
		int i = 5;
		int k = 10;
		boolean b = i > k & i++ >k;                  //这一步是关键,这里用到逻辑与;
		System.out.println(b);
		System.out.println(i);
	}
}
运行结果 :
false
6




如果把逻辑与改成短路与:


public class Test{
	public static void main (String args[]){
		int i = 5;
		int k = 10;
		boolean b = i > k && i++ >k;                  //这一步是关键,这里用到短路与;
		System.out.println(b);
		System.out.println(i);
	}
}


运行结果 :
false
5


看到结果,就不难猜到两者的区别在哪了。如果前者表达式错误,如果使用的逻辑与运算,计算机还会去判断后者的表达式正确与否。如果是短路与,就不会判断后者的表达式。因为无论后者正确与否,都不影响运算出来的结果,短路与就直接跳过这个步骤了。运算也少了一步。


相同的,在或运算情况下,如果前者表达式正确,如果使用的逻辑或运算,计算机还会去判断后者的表达式正确与否。如果是短路或,就不会判断后者的表达式。


虽然结果一样(这结果指逻辑运算的结果,不包括逻辑运算里表达式中的变量可能发生变化),但是使用短路与(或)有可能比逻辑与(或)少做运算。两个表达式的逻辑运算可能看不出什么优越感,如果n个表达式做逻辑运算,如果是短路与,那么第一个表达式错误,就不会去判断下面n-1个表达式了。
这也是为什么,基本所有程序中出现的逻辑运算,都是使用短路与(短路或)。


而且写程序时,在写短路与的时候,尽量把"更会错误的"表达式写在前面。在写短路或的时候,尽量把"更会正确的"表达式写在前面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值