首頁(yè)常見問題正文

Java編程基礎(chǔ):運(yùn)算符的優(yōu)先級(jí)

更新時(shí)間:2022-10-31 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Java中,在對(duì)一些比較復(fù)雜的表達(dá)式進(jìn)行運(yùn)算時(shí),要明確表達(dá)式中所有運(yùn)算符參與運(yùn)算的先后順序,通常把這種順序稱為運(yùn)算符的優(yōu)先級(jí)。Java中運(yùn)算符的優(yōu)先級(jí)如下所示,左側(cè)代表優(yōu)先級(jí),右側(cè)表示運(yùn)算符。

  1..[] ()

  2.++ -- ~ ! (數(shù)據(jù)類型)

  3.* / %

  4.+ -

  5.<< >> >>>

  6.< > <= >=

  7.== !=

  8.&

  9.^

  10.|

  11.&&

  12.||

  13.?:

  14.= *= /= %= += -= <<= >>= >>>= &= ^= |=

  在上述所示中,數(shù)字越小優(yōu)先級(jí)越高。根據(jù)上方的優(yōu)先級(jí)運(yùn)算符,分析下面代碼的運(yùn)行結(jié)果。

int a =2;
int b = a + 3*a;
System.out.println(b);

  上述代碼的運(yùn)行結(jié)果為9,由于運(yùn)算符“*”的優(yōu)先級(jí)高于運(yùn)算符“+”,因此先運(yùn)算3*a,得到的結(jié)果是6,再將6與a相加,得到最后的結(jié)果8。

int a =2;
int b = (a+3) * a;
System.out.println (b);

  上述代碼運(yùn)行結(jié)果為10,由于運(yùn)算符“()”的優(yōu)先級(jí)最高,因此先運(yùn)算括號(hào)內(nèi)的a+3,得到的結(jié)果是6,再將6與a相加,得到最后的結(jié)果8。

  上述代碼運(yùn)行結(jié)果為10,由于運(yùn)算符“()”的優(yōu)先級(jí)最高,因此先運(yùn)算括號(hào)內(nèi)的a+3,得到的結(jié)果是5,再將5與a相乘,得到最后的結(jié)果是10。

  在學(xué)習(xí)過程中,讀者沒有必要刻意記憶運(yùn)算符的優(yōu)先級(jí)。編寫程序時(shí),盡量使用括號(hào)“()”實(shí)現(xiàn)想要的運(yùn)算順序,以免產(chǎn)生歧義。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!