黑马程序员技术交流社区
标题:
&&、&、||、|的区别
[打印本页]
作者:
pphdsny3
时间:
2012-8-23 09:51
标题:
&&、&、||、|的区别
本帖最后由 黑马王鹏 于 2012-8-23 09:53 编辑
&&、&、||、|他们有什么区别么?
这样去区分他们的用法,最好理解!
最好能说说底层实现!
作者:
杨卓儒
时间:
2012-8-23 09:56
本帖最后由 杨卓儒 于 2012-8-23 10:09 编辑
如果都表示逻辑运算的话,
&与&& 以及 |与||的结果都是一样的
但是逻辑与逻辑或 只要判断完第一个条件便可以得出结果为真假
而按位与和按位或判断完第一个条件后,必须要判断第二个条件以后才能给出结果的真假
作者:
刘芮铭
时间:
2012-8-23 09:58
本帖最后由 刘芮铭 于 2012-8-23 10:01 编辑
简单的理解是这样的:
(1)&和&&均是与的意思!
&是无论符号2边真假,都需要进行运算比较!
&&是如果需要真的情况,左边出现假,右边就不用比较了!表达式肯定为假!
(2)|与||都是非的意思:与上述的有异曲同工之效!
|是无聊符号2边真假,都需要比较!
||是如果需要真的情况,左边出现真,右边就不用比较了!表达式肯定为真!
好处:&&和||在一些情况下可以节省时间!提高效率!
作者:
焦晨光
时间:
2012-8-23 11:07
&&(||)会出现短路,&(|)不会
也就是&&(||)在判断了前面的表达式的值后,如果能得出结论,就不去判断后面表达式的值了
而&(|)会脚踏实地,循规蹈矩的对两边表达式的值都进行判断
底层实现就是:
&&(&): 两边的表达式都为true才为true ,否则都为false
||(|):两边的表达式都为false时才为false,否则都为true
作者:
pphdsny3
时间:
2012-8-23 11:23
理解了,这样才记得住...谢谢!
作者:
刘学
时间:
2012-8-23 11:25
&& || 是逻辑运算符,& | 是位运算符,同时也能用于逻辑运算,那么它俩在逻辑运算上的区别是&& ||,具有短路功能,如 false && true=false 当运算到第一个为false时就不在判断&&右侧,因为结果肯定为false,那么用&运算则没有短路功能,&运算符的不管能不能确定结果左右都会进行判断。
作者:
高薇
时间:
2012-8-23 11:45
&与 |或 ^异或 !非 && ||
6>x>3在程序中是不被允许的;因此,逻辑运算符用于连接布尔类型的表达式;
&---必须两边的布尔表达式都为真,结果才为真;
| ----只要有一个布尔表达式为真,结果就为真;
^----两个布尔表达式结果不相同,结果就为真;
!true=false; !!true=true
&&双与(短路)
&和&&的区别:两者在运算结果上没有任何区别;
两个布尔表达式都为真的情况下,运算结果是没有任何区别的;
&&的时候,只要前者为false,后边的表达式压根就不会再执行了,也就是短路了;
&的时候呢,即使前者为false,后边的表达式也还会再执行一遍;
使用双与:执行效率大大提高,
||(双或)---有一个为真就行
|和||的区别:同样的,在运算结果上是没有任何区别的;
|:两边都参与运算;
||:只要检测出第一个表达式结果为true,第二个表达式也是不会执行的;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2