java语言中&&与& ||与|有什么区别

谢谢!!... 谢谢!! 展开
 我来答
酷月狼
2009-09-11 · TA获得超过174个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:163万
展开全部
&& 逻辑运算and,当两个条件都为真的时候才为真。

||逻辑运算or,只要有一个条件为真就为真。

而& 和 | 属于位运算。

逻辑运算与位运算最大的区别在于

逻辑运算支持短路运算,

而位运算不支持短路运算。

短路运算就是 位运算if(条件1 & 条件2){}
当第一个条件不满足的时候还会判断条件2,

但是逻辑运算if(条件1 &&条件2){}
当第一个条件不满足的时候不会判断条件2.

逻辑|| 跟位运算| 同上。

我能说的也就这么多 - -
liaoxingliao
2009-09-11 · 超过28用户采纳过TA的回答
知道答主
回答量:84
采纳率:100%
帮助的人:43.4万
展开全部
我服了,没经过测试就到这里来忽悠人,还有下面那个,竟然说他们说得很对...害我又测试一遍,
在java中和c不同,java中&&和||已经是短路操作了,测试
String str = null;
System.out.println(true||str.equals(""));
明显没问题,如果没短路,肯定会出现NullPointerException
再测试
String str = null;
System.out.println(true|str.equals(""));
控制台马上就出现了异常.....
String str = null;
System.out.println(false&&str.equals(""))
不会出现异常
看到了啥时候是短路,啥时候不是短路了吧

a&&b 当a为真时会去检查b是否为真当两个同时为真是返回真,当a为假时不去检查b

& 或者 | 操作整数的时候请参考http://hi.baidu.com/injava/blog/item/2735c743a395321372f05d1b.html
当& 和| 操作boolean的时候,就是不短路操作
例如
a&b 当a为false的时候还是会去检查b的值.例如:
(i>5)&(--i==10)也就是说,不管i大不大于5,i总是要减的.

javaQQ群:76397268 期待你的加入
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huanxiamemory
2009-09-11
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
以上两位已经讲得很对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaoe013400
2009-09-11 · TA获得超过111个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:0
展开全部
&&和||是逻辑运算符,&和|是短路运算符。当有多个表达式用&&或||连接起来时,不管表达式有多少个,都会先把每一个表达式都计算过,再进行&&或||运算。而&或|而言,如果第一个操作数已经出来结果,就不会计算后面的了。
举个例子:
int a=0;
int b=0;
if(a==0 | b++>0){
System.out.println(b);
}//输出b的值是0;因为a==0为真,就不会计算后面的算式b++了。

int a=0;
int b=0;
if(a==0 || b++>0){
System.out.println(b);
}//输出b的值是1;因为先计算两个算式的真假值,再比较。

7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式