黑马程序员技术交流社区

标题: |和||的区别? [打印本页]

作者: Be_myself    时间: 2014-6-12 23:34
标题: |和||的区别?
|和||的区别?   比如说i>3||k<5, 为什么i>3为真,k<5就不再计算了

作者: qincai    时间: 2014-6-12 23:59
||:左边为真,则一定为真,所以右边的不用判断了
作者: ゞ导火索゛    时间: 2014-6-13 00:01
逻辑或运算中,只要有一个为真,整个表达式就是真,
使用  ||, 因为i>3为真,所以后面不论k<5是真还是假,整个表达式都为真。所以后面的不用判断了
使用  | ,不管i>3是否为真,后面的都要在进行判断。
其实  || 可以说是对 | 的优化
作者: 夏季熬成了秋    时间: 2014-6-13 00:07
||  叫做"短路或"  , 见名知意,  i>3 || k<5;     i > 3为真就不再执行后面.可以理解为后面被短路.
而逻辑  |  判定完 i > 3;还要继续判定 k < 5;
所以 短路 || 比 逻辑 | 的效率相对要高,算是 逻辑或 |  的优化吧.开发中一般都用 ||.
希望可以帮到你.
作者: 江祖贇    时间: 2014-6-13 00:25
老毕 有讲过哦:call:
作者: 我为你着迷    时间: 2014-6-13 07:04
一个或符号代表左右俩边都参与运算,而两个或如果左边为真那么右边不运算 如果左边为假那么右边参与运算 至于为什么会这样  java语音的特性吧   你记住就好了  就好像你为什么叫这个名字啊  没有为什么   另外在实际开发中基本上都用双或  双活比较常见   因为双或的效率比单或的效率要高 希望能帮助你  {:3_57:}
作者: a6217815    时间: 2014-6-13 10:02
||:判断左边为真就不管右边了,因为不论右边是不是真,其结果都为真
| :判断完左边依旧还要判断右边

所以一边我们用||,他效率高一些
作者: 18353666072    时间: 2014-6-13 15:13
导火索说的和好奥
作者: Be_myself    时间: 2014-6-13 22:35
夏季熬成了秋 发表于 2014-6-13 00:07
||  叫做"短路或"  , 见名知意,  i>3 || k 3为真就不再执行后面.可以理解为后面被短路.
而逻辑  |  判定完  ...

谢谢, 说的很好,有帮到我
作者: Be_myself    时间: 2014-6-13 22:37
我为你着迷 发表于 2014-6-13 07:04
一个或符号代表左右俩边都参与运算,而两个或如果左边为真那么右边不运算 如果左边为假那么右边参与运算 至 ...

谢谢,很受用
作者: Be_myself    时间: 2014-6-13 22:38
a6217815 发表于 2014-6-13 10:02
||:判断左边为真就不管右边了,因为不论右边是不是真,其结果都为真
| :判断完左边依旧还要判断右边

谢谢你的回答,很受用
作者: wangkerui    时间: 2014-6-13 22:44
看视屏啦!
作者: 嗅ㄨiaǒ孑    时间: 2014-6-13 23:01
或操作,要求前后几个表达式只要有一个true,则最终结果就是true,如果全都是false,则最终结果才是false;




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