程序中的短路算法现象

一、逻辑与(&&)中的短路。

  逻辑与的运算符为&&, 其运算规则为,对于expr1 && expr2,只有当expr1和expr2同时为真(1)时,结果才为真(1);
  可以得到,如果expr1为假,那么无论expr2值是什么,结果都是假。
  这种情况下,expr2的值就不重要了,于是当expr1为0(假)时,后续的expr2不会加入计算,而是被忽略,这就是逻辑与的短路现象。

代码如下(示例):

public class 短路算法 {
	public static void main(String[] args) {
		//========逻辑与 短路算法========
		int i = 1,j = 1;
		boolean c = ++j > 2 && i++ > 0; 
		// 2>2 && 1>0 flase 即:flase && true ⇒ flase
		System.out.println("c="+ c); // c = flase;
	}
}

输出结果:

二、逻辑或(||)中的短路。

  逻辑或的运算符为||, 其运算规则为,对于
expr1 || expr2,只有当expr1和expr2同时为假(0)时,结果才为假(0)。
  可以得到,如果expr1为真,那么无论expr2值是什么,结果都是真。
  这种情况下,expr2的值就不重要了,于是当expr1为1(真)时,后续的expr2不会加入计算,而是被忽略,这就是逻辑或的短路现象。

代码如下(示例):

public class 短路算法 {
	public static void main(String[] args) {
		//========逻辑或 短路算法========
		int i = 1,j = 1;
		boolean c = ++j > 2 || i++ > 0; 
		// 2>2 || 1>0 即:flase || true ⇒ true
		System.out.println("c="+ c); // c = true;
	}
}

总结

  综上所述,短路现象的出现,其实是和各自的运算规则相关的,如果第一个运算符已经可以确定运算结果,那么第二个运算符就会被忽略,这样的规则设置,可以提高程序运行的效率。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值