Java中,&&与&,||与|的区别

 

Java中,&&与&,||与|的区别

  16729人阅读  评论(6)  收藏  举报
  分类:

在java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或)。


&&和&都是表示于,区别是&&只要满足第一个条件,后面条件就不再判断。而&要对所有的条件都进行判断。

看下面的程序:

[html]  view plain copy print ?
  1. public static void main(String[] args) {  
  2.         // TODO Auto-generated method stub  
  3.         if((23!=23)&&(100/0==0)){  
  4.             System.out.println("运算没有问题。");  
  5.         }  
  6.     }  
输出的是“运算没有问题”,没有报错。而将&&改为&就会如下错误:
[html]  view plain copy print ?
  1. Exception in thread "main" java.lang.ArithmeticException: / by zero  

原因是:&&时判断第一个条件为false,后面的100/0==0这个条件就没有进行判断。
        &时要对所有的条件进行判断,所以会对后面的条件进行判断,所以会报错。




   ||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
看下面的程序:
[html]  view plain copy print ?
  1. public static void main(String[] args) {  
  2.     // TODO Auto-generated method stub  
  3.     if((23==23)||(100/0==0)){  
  4.         System.out.println("运算没有问题。");  
  5.     }  
  6. }  
此时输出“运算没有问题”。若将||改为|则会报错。


原因是:||判断第一个条件为true,后面的条件就没有进行判断就执行了括号中的代码,而|要对所有的条件进行判断,
所以会报错。
1
2
我的同类文章
主题推荐
java pre class
猜你在找
JavaWeb程序设计
Java基础核心技术:高级类特性1(day07-day09)
Java基础核心技术:面向对象编程(day05-day07)
Java基础核心技术:网络编程(day20)
c++面向对象前言及意见征集(来者不拒)视频课程
C++和java多态的区别
详细解析Java中抽象类和接口的区别
2015我想和Java聊聊之HashTable和HashMap的区别
Java学习之抽象类和接口区别比较
Java中的抽象类和接口区别
id="iframeu1607657_0" src="http://pos.baidu.com/acom?rdid=1607657&dc=2&di=u1607657&dri=0&dis=0&dai=2&ps=1710x231&dcb=BAIDU_EXP_UNION_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=551&tpr=1451954941851&ti=Java%E4%B8%AD%EF%BC%8C%26%26%E4%B8%8E%26%EF%BC%8C%7C%7C%E4%B8%8E%7C%E7%9A%84%E5%8C%BA%E5%88%AB%20-%20Nora(Java)%20-%20%E5%8D%9A%E5%AE%A2%E9%A2%91%E9%81%93%20-%20CSDN.NET&ari=1&dbv=2&drs=1&pcs=991x548&pss=991x1726&cfv=0&cpl=4&chi=1&cce=true&cec=UTF-8&tlm=1451954942&ltu=http%3A%2F%2Fblog.csdn.net%2Flishiyuzuji%2Farticle%2Fdetails%2F8116516&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DmuiyC5Cmk5tHKuet_4mRdCHIz6N-3Cxdeidu1KoNZg49j251dHOASuSnCnZ_F_cHfzfKbNe5CzFRMEaLiS6bHhssz0Pcdu3JT36iUSrv8xm%26wd%3D%26eqid%3De13deb52000d301800000005568b1298&ecd=1&psr=1366x768&par=1366x728&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1451954942&exps=110211&qn=01a8ac4a5ccb246b&tt=1451954941831.554.826.828&feid=110211" width="728" height="90" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;">
查看评论
6楼  qq_871820604 2015-10-29 16:23发表 [回复]
还好机智的我看评论了, 要不然我就信了........
5楼  俺啥都不懂 2015-10-08 09:14发表 [回复]
哥儿们,&&和&的解释错误了!
4楼  yan然 2015-02-25 10:24发表 [回复]
&& 和 &的解释错误的,楼主修改下吧
3楼  你的微笑狠美 2014-01-21 14:31发表 [回复]
第一个就写错了,误人子弟,坑!
2楼  littlezan 2014-01-16 16:43发表 [回复]
大哥,你不要误人子弟好不好
1楼  yandaniu 2013-06-10 13:33发表 [回复]
好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值