逻辑与(&)和逻辑或(|) VS 短路与(&&)和短路或(||)

转载 2013年12月04日 09:56:32

1.  逻辑与(&)和逻辑或(|) 位运算符,
        标准的逻辑与(&)和逻辑或(|),不论第一个表达式为true or false,都计算第二个表达式。
        例如:if (c==0 | e++ < 100)  { d=12;}     //不论c是否等于0,e都被自增量。

2.  短路与(&&)和短路或(||)
        A&&B, 当A为false时,不去计算B的值而直接返回false;当A为true时,计算B的值。
        A || B,当A为true时, 不去计算B的值而直接返回true;当A为false时,计算B的值。

3.应用比较
        短路&& 是很有用的。例如,下面的程序语句说明了短路逻辑运算符的优点,用它来防止被0除的错误: 
        if (denom != 0 && num / denom > 10)  
        既然用了短路与(&&) 运算符,就不会有当denom为0时产生的意外运行时错误。如果该行代码使用标准与 运算符(&),它将对两个运算数都求值,当出现被0除的情况时,就会产生运行时错误。

         既然短路运算符在布尔逻辑运算中有效,那么就在布尔逻辑运算中全用它,而标准的AND 和OR运算符(只有一个字符)仅在位运算中使用。


 4. Java四大运算符:算术运算符、位运算、关系运算、逻辑运算

    另外还有比较运算符(instanceof)

            A>     算术与位运算就不说了,一般不容易出错

            B>     关系运算符:   ==    >     <     <=    >=    !=

                        关系运算的结果为boolean,只有true和false,不像C/C++中,非0为true,0为false。
                        boolean flag= a<c;  //这种写法是正确的.
                        例如: if(a == b) {}     //如果是正确的,进行运算; 

                        赋值运算符 = 是赋值的,  如: int a = 5;        //不是 int a == 5;

            C>     布尔逻辑运算符
                      布尔逻辑运算的运算数只能是布尔型,结果也为boolean型

                       逻辑与(&)和逻辑或(|)  及   短路与(&&)和短路或(||) 的区别见上。


<骑猪闯天下>

相关文章推荐

关于Java里面的短路逻辑运算符

逻辑运算符执行的是短路求值 所谓短路,就是当参与运算的一个操作数已经足以推断出这个表达式的值的时候,另外一个操作数(有可能是表达式)就不会执行 比如: static boolean f1()...

c++ || && 逻辑短路问题

结论:“或”逻辑前面为1,“与”逻辑前面为0就会发生短路 1——或逻辑短路 include int main() { int a=5,b=6,c=7,d=8,m=2,n=2; (...

PHP学习笔记——PHP逻辑运算符的特性(短路)

/* 逻辑运算符号: * 特性:短路 * && and (两边都成立) * $a = 1;($a>5都不成立就不用考虑$a 5 && $a 5...
  • iheyu
  • iheyu
  • 2017年03月20日 11:58
  • 96

巧用短路逻辑优化代码质量

方法1:var arr=["a","b","a","c","a","b"]; function unique1(arr){ //第一种方法 for(var i =0,uarr=[];i...
  • xie_lu
  • xie_lu
  • 2017年06月23日 21:14
  • 45

啥叫"短路逻辑"

从Python中的理解:if a and b:#如果a是false,那么跳过b的判断,结果直接false if a or b:#如果a为true,那么跳过b的判断,直接true从Jave中认清逻辑操...

C语言逻辑运算的短路特性

原理:(表达式1)&&(表达式2) 如果表达式1为假,则表达式2不会进行运算,即表达式2“被短路” (表达式1)||(表达式2) 如果表达式1为真,则表达式2不会进行运算,即表达式2“被短路” 举例...

Java中操作逻辑运算符时进行“短路”测试

Java中操作逻辑运算符时进行“短路”测试

Java基础篇笔记(三) ---浅谈逻辑与(或)和短路与(或)

关于逻辑与(逻辑或)和短路与(短路或)的探讨。 逻辑与(逻辑或)和短路与(短路或)都是逻辑运算符,用符号表示如下: 逻辑与   & 逻辑或   | 短路与    && 短路或   |...

【最短路】CODE[VS] 1021 玛丽卡 ( Dijkstra )

点击躲避玛丽卡 单源最短路 定义一个cost数组记录边的权值,然后删边(改值为INF)跑最短路就行了 第一遍跑的时候,别忘了记录一下每个点的父节点,方便删边 代码如下(dijkstra...

【最短路】CODE[VS] 1557 热浪 (Dijkstra模板)

拒绝前往德克萨斯州哼唧Dijkstra才是真正优美的最短路算法,不服来辩!基本策略是贪心...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:逻辑与(&)和逻辑或(|) VS 短路与(&&)和短路或(||)
举报原因:
原因补充:

(最多只允许输入30个字)