您好,登錄后才能下訂單哦!
本篇內容主要講解“java中的&和&&有哪些區別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java中的&和&&有哪些區別”吧!
java中的&和&&的區別:1、&&運算符在運算時當第一個表達式的值為false時,就不會再計算第二個表達式;而&運算符則不管第一個表達式的值是否為真都會執行兩個表達式。2、&運算符可以用作位運算符,而&&運算符不可以。
在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中的&和&&有哪些區別”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。