&和| 既是逻辑运算符也是运算符,而&&和||只是逻辑运算符。
具体的分析如下:
-
&&符号可以用作逻辑与的运算符,表示逻辑与(AND),当运算符两边的表达式的结果都为真时,整个运算结果才为真,否则,只要有一方为假,则结果为假的。&&还具有短路的功能,即如果第一个表达式为假,则不再计算第二个表达式,
-
||符号可以作逻辑或运算符,表示逻辑或(OR),当运算符有一边为真时,整个运算结果为真!
-
当&与&&同为逻辑运算符时,它们都用于连接两个布尔类型的表达式,当与和&&的两端表达式同时为真时,表达式的结果为真,只要有一端为假,那么表达式结果为假从用法上来看,与和&&并没有什么区别,比如我们可以写两个表达式:
4> 6&7> 5; 4> 6 && 7> 5;
两个运算符都可以这么用,但是不同的是,当在判断这个表达式的真或假的时候,两者的判断次数不同;
当使用&运算符:计算机在判断表达式的值的时候,先判断4> 6的值为假,然后再判断7> 5的结果为真,于是最后的结果是假&真为假;
但是当我们使用&&运算符的时候:计算机先判断4> 6的值为假,此时表达式的结果一定为假,所以计算机就不再往下判断了,判定表达式结果为假。
逻辑运算符&与&&的区别是:
&无论左边结果是什么,右边还是继续运算;
&&当左边为假,右边不再进行运算。
但是两者的结果是一样的。
-
当|和||的两端表达式同时为假时,表达式的结果为假,只要有一端为真,那么表达式结果为真。
因此,我们可以知道|与||的区别:
| 无论左边结果是什么,右边还是继续运算;
||当左边为真,右边不再进行运算。
但是两者的结果是一样的。
所以&&和||的效率比较高。