點擊查看:2015計算機等級考試二級Java入門教程章節匯總
點擊查看:2015計算機等級考試二級Java入門教程第二章匯總
2.11 運算符優先級
我們已經介紹了運算符的優先順序,它決定了在語句中運算符被執行的順序。如3+4*5這樣一個簡單的算術表達式,因為乘法運算最先執行,它的優先級大于加法運算,所以該表達式的結果為23.我們現在把Java中出現的所有運算符進行一下歸類。正如下表所示,在Java中的每個運算符都有一個優先級。優先級較高的運算符應在優先級較低的運算符之前執行。優先級最高的運算符在表的頭一行,往下依次降低,直至最后一行為最低
在表中出現的絕大多數運算符你可能還沒有見過,但在學完本書后,你就會全部遇到它們,并且將它們收集在優先級順序表中,在必要的時候參考一下會非常方便。
由定義可知,后綴運算符++雖然具有很高的優先級,但還是在出現它的表達式中的其他運算符操作后才執行。在這種情況下,優先級決定它所應用的對象,換句話說,后綴++只作用于那些在它之前出現的變量。由于這個原因,我們在前面看到的表達式oranges+++apples等價于(oranges++)+apples,而不是oranges+(++apples).
在一條語句中,優先級相等的運算符的執行順序,由一個稱作結合性的特性決定。在上表中出現在同一行的每組運算符,不是左結合就是右結合。一個左結合運算符將與它左邊的操作數相結合。這將導致包括幾個具有相同優先級的左結合運算符的表達式,等價于按照從最左向右的順序執行。在一個表達式中,具有相同優先級的右結合運算符與它右側操作新相結合。井日從右向左執l行。例如,如奧你寫一條語句:a=b+c+10
+運算符屬于左結合組的運算符,實際上隱含為:
a=(b+c)+10
另一方面=和op=是右結婚運算符,所以,發、如果你有int類型變量,a、b、c和d都初始化為1,語句:
a+=b=c+0=10
結果a等于12、b和c等于11、d等于10.這條語句等價于:
a+=(b=(c=(a=10));
注意,這些語句用來說明結合操作的過程,我們并不推薦用這種方式編寫代碼。
你會通過編寫程序逐漸學會使用Java中運算符的優先級和結合性。你可能需要來回查詢這個表,但是,當你具有一定經驗后,就對運算符的運算順序有了一定的感覺,最后你能夠自覺或不自覺地知道什么時候需要括號,什么時候不需要。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |