码迷,mamicode.com
首页 > 其他好文 > 详细

&&(短路与)、&、|、||(短路或)

时间:2017-01-12 02:30:45      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:再计算   越界   存在   image   不同的   数组下标   技术分享   位运算   java   

Java语言中的&&(短路与)、&、|、||(短路或)区别:

  &&是逻辑

   &是位

  当&两边是整数时执行的是位运算,而两边是boolean值时执行的是逻辑运算。

  代码如下:

  技术分享

  运行结果如下:

   技术分享

  &的逻辑运算和&&逻辑运算是存在一定不同的:
    &逻辑运算时两边都会计算的,而&&则在左边为假时则直接返的是false不再计算右边。

  代码如下:

  技术分享技术分享

  运行结果如下:

  技术分享技术分享

  这两个例子中,第一个会抛出异常,而第二个则什么不会输出也不会抛异常。

  分析:

    因为第一个例子中if语句中用的是&,所以两边的都会计算,当计算a[3]==4时抛出数组下标越界异常
    第二个例子则在计算第一个式子a[0]==2发现结果为假则不再计算右边,直接返回false,所以该例子不会输出任何东西 。

  ||(逻辑或)、|(位或)的区别与&&(逻辑与)、&(位与)的区别类似。

 

总结:

  &&:若左边为假则不在判断右边,同时返回假。(右边不重新赋值)

  ||:若左边为真则不在判断右边,同时返回真。(右边不重新赋值)

  &:不管怎样两边都会判断,都为真才返回真。

  |:不管怎样两边都会判断,都为假才返回假。

&&(短路与)、&、|、||(短路或)

标签:再计算   越界   存在   image   不同的   数组下标   技术分享   位运算   java   

原文地址:http://www.cnblogs.com/xymxhs/p/6274125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!