下文是笔者讲述java中逻辑运算符的简介说明,如下所示:
java中的逻辑运算符包含以下6种: &&与:&& 与 前后两个操作数必须都是true才返回true,否则返回false & 不短路与:& 不短路与 表达式都会执行到 ||或: || 或 只要两个操作数中有一个是true,就返回true,否则返回false |不短路或:| 不短路 或 表达式都会执行到 !非:! 非 ,如果操作数为true,返回false,否则,返回true ^异或:^ 异或 ,当两个操作数不相同时返回true,返回false
真值表
| A | B | A&&B | A||B | !A | A^B | A&B | A|B |
| false | false | false | false | true | false | false | false |
| true | false | false | true | false | true | false | true |
| false | true | false | true | true | true | false | true |
| true | true | true | true | false | false | true | true |
逻辑运算符注意事项:
1.两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同
2.两者最大的区别在于:
&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能
例:
对于&&计算,当左侧的表达式为false时,则计算会立即终止,返回false
同理对于||计算,其原理也相同
例:
//88>99 为false,后面条件就不执行判断,当88<99为true,后面条件继续执行判断,抛出异常java.lang.ArithmeticException: / by zero
if((88>99)&&(100/0==0)){
}
//条件必须都执行判断,抛出异常java.lang.ArithmeticException: / by zero
if((88>99)&(100/0==0)){
}
// ||短路或,当第一个条件为true,后面条件不执行判断
if((88<99)||(100/0==0)){
}
// | 非短路或,所有条件都要执行判断
if((88>99)|(100/0==0)){
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


