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;
? ?
?
??
轉載于:https://www.cnblogs.com/Co3y/p/10792960.html
總結
- 上一篇: #035 大数阶乘 PTA题目6-10
- 下一篇: Exp6 信息收集与漏洞扫描 20164