本教程操作環境:windows7系統、java8版、DELL G3電腦。
在Java中&&和&都是表示"與"的邏輯運算符,也就是and的意思。它們都是當兩邊的表達式都為true的時候,整個運算結果才為true,否則為false。接下來在文章中將為大家具體介紹這兩者之間的區別。
&和&&的區別
(資料圖)
&和&&都是邏輯運算符,但&&又叫短路運算符。因為當第一個表達式的值為false的時候,則不會再計算第二個表達式;
而&則不管第一個表達式是否為真都會執行兩個表達式。另外&還可以用作位運算符,當&兩邊的表達式不是Boolean類型的時候,&表示按位操作。
&& 操作
int i = 0; if(i == 3 && ++i > 0 ) { }System.out.println("i = " + i);
結果是:
i = 0
原因:第二個表達式沒有執行
& 操作
int i = 0; if(i == 3 & ++i > 0 ) { } System.out.println("i = " + i);
結果是:
i = 1
第二個表達式執行了
擴展知識:邏輯運算符
邏輯運算符把各個運算的關系表達式連接起來組成一個復雜的邏輯表達式,以判斷程序中的表達式是否成立,判斷的結果是 true 或 false。
邏輯運算符是對布爾型變量進行運算,其結果也是布爾型,具體如表 1 所示。
運算符 | 用法 | 含義 | 說明 | 實例 | 結果 |
---|---|---|---|---|---|
&& | a&&b | 短路與 | ab 全為 true 時,計算結果為 true,否則為 false。 | 2>1&&3<4 | true |
|| | a||b | 短路或 | ab 全為 false 時,計算結果為 false,否則為 true。 | 2<1||3>4 | false |
! | !a | 邏輯非 | a 為 true 時,值為 false,a 為 false 時,值為 true | !(2>4) | true |
| | a|b | 邏輯或 | ab 全為 false 時,計算結果為 false,否則為 true | 1>2|3>5 | false |
& | a&b | 邏輯與 | ab 全為 true 時,計算結果為 true,否則為 false | 1<2&3<5 | true |
|| 與 | 區別:如果 a 為 true,則不計算 b(因為不論 b 為何值,結果都為 true)
注意:短路與(&&)和短路或(||)能夠采用最優化的計算方式,從而提高效率。在實際編程時,應該優先考慮使用短路與和短路或。
結果為 boolean 型的變量或表達式可以通過邏輯運算符結合成為邏輯表達式。邏輯運算符 &&、|| 和 !按表 2 進行邏輯運算。
a | b | a&&b | a||b | !a |
---|---|---|---|---|
true | true | true | true | false |
false | true | false | true | true |
true | false | false | true | false |
false | false | false | false | true |
邏輯運算符的優先級為:!運算級別最高,&& 運算高于 || 運算。!運算符的優先級高于算術運算符,而 && 和 || 運算則低于關系運算符。結合方向是:邏輯非(單目運算符)具有右結合性,邏輯與和邏輯或(雙目運算符)具有左結合性。
下面是一些使用邏輯運算符的示例。
x>0 && x<=100 // 第一行語句y%4==0 || y%3==0 // 第二行語句!(x>y) // 第三行語句
其中,第一行語句用于判斷 x 的值是否大于 0 且小于或等于 100,只有兩個條件同時成立結果才為真(true)。第二行語句用于判斷 y 的值是否能被 4 或者 3 整除,只要有一個條件成立,結果就為真(true)。第三行語句先比較 x 和 y,再將比較結果取反,即如果 x 大于 y 成立,則結果為假(false),否則為真(true)。
更多編程相關知識,請訪問:編程教學??!
以上就是java中的&和&&有什么區別的詳細內容,更多請關注php中文網其它相關文章!
關鍵詞: java