黑马程序员技术交流社区

标题: 逻辑| 和条件|| 还有 逻辑&和条件&&什么关系?????? [打印本页]

作者: 黑马姜硕    时间: 2011-12-14 22:00
标题: 逻辑| 和条件|| 还有 逻辑&和条件&&什么关系??????
本帖最后由 ugvgylkm 于 2011-12-15 10:19 编辑

逻辑| 和条件|| 还有 逻辑&和条件&&什么关系呢 尤其是那个单个| 和& 是怎么回事????????
作者: 周胜    时间: 2011-12-14 22:19
if(1==2 & 2==2)程序执行时即便1=2是false了,但是还会比较2==2
if(1==2 && 2==2),1==2是false,就不会比较2==2了
if(1==2 | 2==2)程序执行时即便1=2是true了,但是还会比较2==2
if(1==2 || 2==2),1==2是true,就不会比较2==2了
作者: 黑马——兰雷明    时间: 2011-12-14 22:32
,&&是逻辑与  即判断&&两侧的表达式是否都为真,都为真则此&&表达式值为真;& 是按位与 即将&两侧的数用二进制展开,每一位都求与运算(二进制与运算,跟逻辑与差不多),最后得到的二进制数即为结果;逻辑与结果只讲真和假,而按位与得出的却是实实在在的一个数

位或运算的时候,他会将所有运算条件都算出结果,再判断是否为真.
|| 逻辑或运算的时候,从前往后运算,若有一个成立,则不再继续运算下面的条件.直接为真.


作者: liuyinggzu    时间: 2011-12-14 23:06
C#为整型和布尔型预定义了二进制“&”运算符。对于整型,“&”计算操作数的按位与;对于布尔操作数,“&”计算操作数的逻辑与。
也就是说,当且仅当两个操作数均为true时,其结果才为true,而“&&”则是这样:
条件1为false时不去理会条件2,因为即使条件2为true,结果还是false,“&”则会去判断条件2。
“||”与“|”也是相同的道理:“|”无论条件1是否为true,都会去判断条件2;“||”则指当条件1为true时便不去理会条件2。
“&&”和“||”在判断条件的时候一旦条件1为false,便像电线短路一样,停止了后面所要走的线路。所以“&&”被称为短路与,“||”称为短路或。
“&”也可以作为一元运算符,返回操作数的地址。
作者: 黑马姜硕    时间: 2011-12-15 09:29
OK 解决了
作者: 刘基军    时间: 2011-12-15 09:52
LZ该结贴了!
结贴方法:
http://bbs.itheima.com/thread-4863-1-2.html





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2