黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java運算符優(yōu)先級詳解

Java運算符優(yōu)先級詳解

更新時間:2022-05-05 11:23:59 來源:動力節(jié)點 瀏覽1608次

Java 有明確定義的表達式求值規(guī)則,包括運算符優(yōu)先級、運算符關(guān)聯(lián)性和操作數(shù)求值順序。我們描述了這三個規(guī)則中的每一個。

運算符優(yōu)先級。 Java運算符優(yōu)先級指定操作數(shù)與運算符分組的方式。例如,1 + 2 * 3 被視為 1 + (2 * 3),而 1 * 2 + 3 被視為 (1 * 2) + 3,因為乘法運算符的優(yōu)先級高于加法運算符。您可以使用括號來覆蓋默認(rèn)的運算符優(yōu)先規(guī)則。

運算符關(guān)聯(lián)性。 當(dāng)一個表達式有兩個優(yōu)先級相同的運算符時,運算符和操作數(shù)會根據(jù)它們的關(guān)聯(lián)性進行分組。例如72 / 2 / 3被視為 (72 / 2) / 3因為除法運算符是從左到右的關(guān)聯(lián)。您可以使用括號來覆蓋默認(rèn)的運算符關(guān)聯(lián)性規(guī)則。

大多數(shù) Java 運算符都是從左到右關(guān)聯(lián)的。一個值得注意的例外是賦值運算符,它是從右到左結(jié)合的。結(jié)果,表達式x = y = z = 17被視為x = (y = (z = 17)),所有三個變量的值都為 17。回想一下,賦值語句的值是它的右-手邊。關(guān)聯(lián)性與某些運算符無關(guān)。例如, x <= y <= z和x++--在 Java 中是無效的表達式。

Java 運算符的優(yōu)先級和關(guān)聯(lián)性。 下表顯示了所有 Java 運算符從最高到最低優(yōu)先級,以及它們的關(guān)聯(lián)性。大多數(shù)程序員不會全部記住它們,即使是那些記住的,為了清楚起見,也使用括號。

等級 操作員 描述 關(guān)聯(lián)性
16 ()
[]
括號
數(shù)組訪問
成員訪問
左到右
15 ++
--
一元后增量
一元后減
左到右
14 +
-

~
++
--
一元加
一元減
一元邏輯非
一元按位非
一元預(yù)遞增
一元預(yù)遞減
右到左
13 ()
新的
鑄造
對象創(chuàng)建
右到左
12 * / % 乘法的 左到右
11 + -
+
附加
字符串連接
左到右
10 << >>
>>>
轉(zhuǎn)移 左到右
9 < <=
> >=
instanceof
關(guān)系 左到右
8 ==
!=
平等 左到右
7 & 按位與 左到右
6 ^ 按位異或 左到右
5 | 按位或 左到右
4 && 邏輯與 左到右
3 || 邏輯或 左到右
2 ?: 三元 右到左
1 = += -=
*= /= %=
&= ^= |=
<<= >>= >>>=
任務(wù) 右到左
0 -> lambda 表達式箭頭 右到左

您會在網(wǎng)絡(luò)和教科書中找到不同的(通常是等效的)運算符優(yōu)先級表。它們通常以無關(guān)緊要的方式不同意,因為某些運算符不能共享操作數(shù),因此它們的相對優(yōu)先順序無關(guān)緊要(例如,new和!)。Java 語言規(guī)范中沒有明確的運算符優(yōu)先級表。相反,運算符優(yōu)先級和關(guān)聯(lián)性規(guī)則是通過定義 Java 語言的語法來推斷的。

Java中操作數(shù)求值的順序。 關(guān)聯(lián)性和優(yōu)先級決定了 Java 對操作數(shù)和運算符的分組順序,但它不決定操作數(shù)的計算順序。在 Java 中,運算符的操作數(shù)總是從左到右計算。同樣,參數(shù)列表總是從左到右計算。因此,例如在表達式 A() + B() * C(D(), E())中,子表達式按A()、B()、 D()、E()和C()。雖然C()出現(xiàn)在D()和E()的左側(cè),但我們需要D()和E()來評估C()。編寫依賴于這種行為的代碼被認(rèn)為是糟糕的風(fēng)格(并且不同的編程語言可能使用不同的規(guī)則)。

短路評估。 除了三個例外(&&、||和?:),Java 在執(zhí)行操作之前評估運算符的每個操作數(shù)。對于邏輯 AND ( &&) 和邏輯 OR ( ||) 運算符,Java 僅在需要解析結(jié)果時才評估第二個操作數(shù)。這稱為短路評估。它允許 if ((s != null) && (s.length() < 10))之類的語句可靠地工作(即,僅當(dāng) is not時才調(diào)用該length()方法)。程序員很少使用帶有布爾表達式的非短路版本(&和|) 。snull

運算符優(yōu)先級出錯了。 有時,一種語言中定義的優(yōu)先順序不符合數(shù)學(xué)規(guī)范。例如,在 Microsoft Excel 中, -a^b被視為(-a)^b而不是 -(a^b). 所以-3^2計算結(jié)果為 9而不是-9,這是大多數(shù)數(shù)學(xué)家所期望的值。微軟承認(rèn)這種 怪癖 是一種“設(shè)計選擇”。有人想知道程序員是否依賴于 C 優(yōu)先順序,其中一元運算符的優(yōu)先級高于二元運算符。此規(guī)則與所有 C 運算符的數(shù)學(xué)約定一致,但由于添加了冪運算符而失敗。一旦在 Microsoft Excel 2.0 中建立了訂單,就很難在不破壞向后兼容性的情況下對其進行更改。

運算符關(guān)聯(lián)性出錯。 有時,運算符的關(guān)聯(lián)性在一種編程語言中是從左到右實現(xiàn)的,而在另一種編程語言中是從右到左實現(xiàn)的。一個令人震驚的例子 是求冪。在 Wolfram Alpha 和 Google Sheets 中,取冪運算符是從右到左關(guān)聯(lián)的,因此2 ^ 2 ^ 3被視為2 ^ (2 ^ 3),即 256。但是,在 Matlab 和 Excel 中,取冪運算符是從左到右關(guān)聯(lián)的,因此 2 ^ 2 ^ 3被視為(2 ^ 2) ^ 3,即 64。求冪不是 Java 中的二元運算符。

以上就是關(guān)于“Java運算符優(yōu)先級詳解”的介紹,大家如果想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,通俗易懂,比較適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 青青草国产97免久久费观看 | 欧美成人片在线 | 日韩美aaa特级毛片 日韩毛片免费在线观看 | 毛片午夜 | 免费高清特黄a 大片 | 色视频在线观看在线播放 | 91短视频版高清在线观看免费 | 波多野结衣久久高清免费 | 大学生美女穿黑色丝袜网站 | 欧美高清视频手机在在线 | 国产在线视频一区二区三区 | 日本高清一区二区三区水蜜桃 | 特级a毛片 | 九九国产在线视频 | 99精品国产成人一区二区 | 日本成日本片人免费 | 羞羞午夜 | 在线免费观看色 | 精品久久久久久亚洲精品 | 亚洲码一区二区三区 | 国产成人午夜片在线观看 | 男女午夜影院 | 天天射天天干天天舔 | 一级毛片q片 | 国产日韩美国成人 | 亚洲午夜在线视频 | a级黄色影片 | 午夜欧美福利视频 | 亚洲国产天堂在线mv网站 | 黄色特一级片 | 国产视频网站在线观看 | 欧美日韩一区不卡 | 久久国产高清一区二区三区 | free性欧美69| 欧美亚洲综合在线 | 破外女出血一级毛片 | 黄色毛片免费在线观看 | 亚洲视屏在线观看 | 日日摸夜夜摸狠狠摸97 | 国产成人lu在线视频 | 水中色av综合 |