更新時間:2022-10-31 來源:黑馬程序員 瀏覽量:
在Java中,在對一些比較復(fù)雜的表達(dá)式進(jìn)行運算時,要明確表達(dá)式中所有運算符參與運算的先后順序,通常把這種順序稱為運算符的優(yōu)先級。Java中運算符的優(yōu)先級如下所示,左側(cè)代表優(yōu)先級,右側(cè)表示運算符。
1..[] ()
2.++ -- ~ ! (數(shù)據(jù)類型)
3.* / %
4.+ -
5.<< >> >>>
6.< > <= >=
7.== !=
8.&
9.^
10.|
11.&&
12.||
13.?:
14.= *= /= %= += -= <<= >>= >>>= &= ^= |=
在上述所示中,數(shù)字越小優(yōu)先級越高。根據(jù)上方的優(yōu)先級運算符,分析下面代碼的運行結(jié)果。
int a =2; int b = a + 3*a; System.out.println(b);
上述代碼的運行結(jié)果為9,由于運算符“*”的優(yōu)先級高于運算符“+”,因此先運算3*a,得到的結(jié)果是6,再將6與a相加,得到最后的結(jié)果8。
int a =2; int b = (a+3) * a; System.out.println (b);
上述代碼運行結(jié)果為10,由于運算符“()”的優(yōu)先級最高,因此先運算括號內(nèi)的a+3,得到的結(jié)果是6,再將6與a相加,得到最后的結(jié)果8。
上述代碼運行結(jié)果為10,由于運算符“()”的優(yōu)先級最高,因此先運算括號內(nèi)的a+3,得到的結(jié)果是5,再將5與a相乘,得到最后的結(jié)果是10。
在學(xué)習(xí)過程中,讀者沒有必要刻意記憶運算符的優(yōu)先級。編寫程序時,盡量使用括號“()”實現(xiàn)想要的運算順序,以免產(chǎn)生歧義。