&&,||与&,|区别
逻辑运算符:
逻辑运算符 | 用法 | 含义 |
---|---|---|
&& | op1&&op2 | 逻辑与 |
| | | op1 | | op2 | 逻辑或 |
! | !op | 逻辑非 |
位运算符:
位运算符 | 符号 | 运算规则 |
---|---|---|
与 | & | 全1则1,否则为0 |
或 | | | 全0则0,否则为1 |
非 | ~ | 遇1则0,遇0则1 |
异或 | ^ | 相同为0,不同为1 |
逻辑运算符(&&、||)与位运算符(&、|)的区别:
- 逻辑运算符只能针对boolean类型进行逻辑运算,而位运算还可以对数值进行逻辑运算。
- 逻辑运算符有短路情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行。
- a && b:a和b同时为true 才返回 true, 否则返回false;a || b:a或b任意一个为true 就返回true ,否则返回false。
- 两者都表示运算,符号两端必须同时为真,最后的结果才为真;其中一端为假,则最后的结果为假。但是&&运算符第一个表达式不成立的话,后面的表达式不运算,直接返回。而&对所有表达式都得判断。