Java逻辑运算
逻辑运算是在关系运算基础之上的运算,能处理更加复杂的问题
逻辑运算的结果是 true 或 false
一、逻辑运算的种类:
在java的逻辑运算符中,有这么四类&&(短路与)、&(与)、||(短路或)、|(非短路或)
使用规则:
(1)& 可以用作逻辑与的运算符,表示逻辑与(and)
a、当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false
b、无论第一个判断条件是否成立,逻辑运算符前后两个条件都会进行判断
(2)&& 可以用作逻辑与的运算符,表示逻辑与(and)
a、当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false
b、第一个条件不成立,后面的条件均不进行判断,返回false
(3)| 可以作逻辑或运算符,表示逻辑或(or)
a、当运算符有一边为true时,整个运算结果为true
b、无论第一个判断条件是否成立,逻辑运算符前后两个条件都会进行判断
(4)|| 可以作逻辑或运算符,表示逻辑或(or)
a、当运算符有一边为true时,整个运算结果为true
b、第一个条件成立,后面的条件均不进行判断,返回true
示例:
String s = null;
1. if((s!=null)&(s.length()>0)){}
2. if((s!=null)&&(s.length()>0)){}
3. if((s==null)|(s.length()==0)){}
4. if((s==null)||(s.length()==0)){}
上述案例在java运行情况中,1,3均抛出NullPointerException异常。
二、逻辑运算优先级:
三种逻辑运算的优先级:
非运算最高,与运算次之,或运算最低
如:(注意:关系运算的优先级要高于所有的逻辑运算)
示例:
5 >=7 || 4 < 5 && !false
步骤1:计算关系运算:5 >=7,结果:false;
步骤2:计算关系运算:4 < 5,结果:true;
步骤3:计算逻辑非运算:!false,结果:true;
此时: false || true && true
步骤4:计算逻辑与运算:true && true,结果:true;
步骤5:计算逻辑或运算:false || true,结果:true;