一般常見到Java路門書必提到的邏輯運算元 And(&&) Or(||)

但是也有書會提到  And(&) Or(|)

其實兩者是有差別的

差別在兩者執行的速率上還有結果都會不同

 

首先要先了And跟Or的差別

And成立條件在前後條件式都要成立(true) 結果才會為真(true)

Or成立條件在前後條件式只要一個條件成立(true) 結果就會為真(true)

註:((i = 3) == 4) & ((j = 7) == 7)

((i = 3) == 4)>前面的條件

((j = 7) == 7)>後面的條件

記住上面的概念 接著


短路

And(&&) Or(||)

執行效率高 當條件前面條件已經足夠成立邏輯運算就不會繼續執行

非短路

And(&) Or(|)

執行效率低 當條件前面條件已經足夠成立邏輯運算還是會繼續執行

 

相信以上說明非常難懂! 

因為我也想好久

實際一點來看看範例

就懂了

 

 

 範例:

會發現AND短路前者條件不成立 後者絕不會運算

非短路則是兩者都要執行

OR短路前面條件不成立 後者依然會執行 但如果成立則後面不執行

非短路則是兩者都要執行

 

 

 結果如下:

 邏輯運算元短路與非短路  

arrow
arrow
    全站熱搜

    chuangmaster 發表在 痞客邦 留言(0) 人氣()