首页 > 代码库 > &&(短路与)、&、|、||(短路或)
&&(短路与)、&、|、||(短路或)
Java语言中的&&(短路与)、&、|、||(短路或)区别:
&&是逻辑
&是位
当&两边是整数时执行的是位运算,而两边是boolean值时执行的是逻辑运算。
代码如下:
运行结果如下:
&的逻辑运算和&&逻辑运算是存在一定不同的:
&逻辑运算时两边都会计算的,而&&则在左边为假时则直接返的是false不再计算右边。
代码如下:
运行结果如下:
这两个例子中,第一个会抛出异常,而第二个则什么不会输出也不会抛异常。
分析:
因为第一个例子中if语句中用的是&,所以两边的都会计算,当计算a[3]==4时抛出数组下标越界异常
第二个例子则在计算第一个式子a[0]==2发现结果为假则不再计算右边,直接返回false,所以该例子不会输出任何东西 。
||(逻辑或)、|(位或)的区别与&&(逻辑与)、&(位与)的区别类似。
总结:
&&:若左边为假则不在判断右边,同时返回假。(右边不重新赋值)
||:若左边为真则不在判断右边,同时返回真。(右边不重新赋值)
&:不管怎样两边都会判断,都为真才返回真。
|:不管怎样两边都会判断,都为假才返回假。
&&(短路与)、&、|、||(短路或)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。