一般常見到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短路前面條件不成立 後者依然會執行 但如果成立則後面不執行
非短路則是兩者都要執行
結果如下:
全站熱搜
留言列表