與(&,&&)和或(|,||)的區別


1.與(&,&&)和或(|,||)的區別 
1.1使用與操作的時候,要求前后幾個表達式的內容都是true,最終結果才是true,如果有一個是false,則最終結果就是false; 
  1.2使用或操作的時候,要求前后幾個表達式只要有一個true,則最終結果就是true,如果全都是false,則最終結果才是false; 

2.與(&)和短路與(&&)的區別以及或(|)和短路或(||)的區別 

這點在初學者中,疑惑的人會比較多 
先說與操作:既然與操作要求前后幾個表達式的內容都是true的時候最終結果才是true,如果使用短路與,則只要第一個結果是false,則整體結果肯定是false,但是程序在這個時候是不會繼續執行下去的,相反,如果不是短路與,即使第一個結果是false,程序依然會執行其他的結果下去,雖然最終結果都是一樣,給個例子,清楚一點: 

Java代碼   收藏代碼
  1. public class Test1{  
  2.     public static void main(String args[]){  
  3.         if(10!=10&10/0==0){  
  4.             System.out.println("條件滿足") ;  
  5.         }  
  6.     }  
  7. };  


很顯然,10!=10結果是false,但是因為沒有使用短路與,程序會繼續執行第二個條件結果判斷,第二個在程序中顯然會發生異常,所以這段代碼編譯可以通過,但是運行就會報錯! 
再看一段代碼: 
  public class Test2{ 
public static void main(String args[]){ 
if(10!=10&&10/0==0){ 
System.out.println("條件滿足") ; 


}; 
第一個結果是false,程序就不會再執行下去,所以程序運行是正常的; 

接下來說說或(|)和短路或(||)的區別 
其實你明白了前面的兩個與的區別之后,這個就很簡單了 
或就是表示前后表達式只要有一個是true,結果就是true,所有的表達式都是false,結果才是false; 
短路與表示只要第一個表達式是true,則程序就不會去執行其他的表達式判斷,相反,如果不是短路或的話,則即使第一個是true,也會都去執行其他的表達式進行判斷 

Java代碼   收藏代碼
  1. public class Test3{  
  2.     public static void main(String args[]){  
  3.         if(10==10|10/0==0){  
  4.             System.out.println("條件滿足") ;  
  5.         }  
  6.     }  
  7. };  


顯然,這個程序執行會報錯,因為程序會去判斷每一個表達式,而下面: 

Java代碼   收藏代碼
  1. public class Test4{  
  2.     public static void main(String args[]){  
  3.         if(10==10||10/0==0){  
  4.             System.out.println("條件滿足") ;  
  5.         }  
  6.     }  
  7. };  


上面的程序因為第一個表達式就是true,而且采用的是短路或,程序不會再執行下面的判斷,所有程序正常運行;


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



this和 $(this)的區別 ‘1’==1和‘1’===1的區別 in和or的區別 as 和 with的區別 a = '1' 與 a = 1的區別 for和for in區別 $(this)和this的區別 is 和 as的區別 即和既的區別 for … of和for … in的區別
 
粤ICP备14056181号  © 2014-2021 ITdaan.com