java的運算符優先順序
Ⅰ java運算符優先順序問題:a=45+45*50%a--
--是一個一元運算符,它的優先順序是這當中最高的,所以應該是先做a--,然後在做*,之後是%,最後是+
Ⅱ JAVA的運算符的優先順序是什麼樣的
所有的數學運算都認為是從左向右運算的,Java語言中大部分運算符也是從左向右結合的,只有單目運算符、賦值運算符和三目運算符例外,其中,單目運算符、賦值運算符和三目運算符是從右向左結合的,也就是從右向左運算。另外,Java 語言中運算符的優先順序共分為 14 級,其中 1 級最高,14 級最低。在同一個表達式中運算符優先順序高的先執行。如下是優先順序和結合性。
結合性是指如果遇到同一優先順序的運算符,程序的執行順序。比如!和++同時存在,它會先加,然後再去比較是否相等。
Ⅲ java中運算符的優先順序順序是怎樣的
以下是一張常見的運算符優先順序表,按照從高到低的順序排列:
- 括弧 ():具有最高優先順序,可以優先執行。
- 算術運算符:+、-、*、/、%、++、--。這些運算符具有相對較高的優先順序,它們通常在括弧內運算完成後再執行。
- 身份運算符:!(邏輯非)、~(按位取反)、&(按位與)、|(按位或)、^(異或)。這些運算符的優先順序高於算術運算符,但低於括弧。
- 比較運算符:==、!=、>、<、≥、≤。這些運算符的優先順序低於身份運算符,但高於算術運算符和括弧。
- 賦值運算符:=, +=, -=, *=, /=, %=, <<, >>, &=, ^=, |=。這些運算符的優先順序低於比較運算符和身份運算符,但高於括弧。
值得注意的是,有些語言可能會根據特定的語法規則對運算符的優先順序進行微調。此外,可以使用括弧來改變運算的順序,即使它們看起來並不符合默認的優先順序順序。這只是一張常見的運算符優先順序表的一部分,具體的優先順序可能會因編程語言和上下文而異。在編寫代碼時,建議查閱特定語言的文檔以獲取准確的運算符優先順序信息。
Ⅳ java運算優先順序
所有的數學運算都認為是從左向右運算的,Java語言中大部分運算符也是從左向右結合的,只有單目運算符、賦值運算符和三目運算符例外,其中,單目運算符、賦值運算符和三目運算符是從右向左結合的,也就是從右向左運算。
乘法和加法是兩個可結合的運算,也就是說,這兩個運算符左右兩邊的操作數可以互換位置而不會影響結果。運算符有不同的優先順序,所謂優先順序就是在表達式運算中的運算順序。
一般而言,單目運算符優先順序較高,賦值運算符優先順序較低。算術運算符優先順序較高,關系和邏輯運算符優先順序較低。多數運算符具有左結合性,單目運算符、三目運算符、賦值運算符具有右結合性。
Java 語言中運算符的優先順序共分為 14 級,其中 1 級最高,14 級最低。在同一個表達式中運算符優先順序高的先執行。表 1 列出了所有的運算符的優先順序以及結合性。
使用優先順序為 1 的小括弧可以改變其他運算符的優先順序,即如果需要將具有較低優先順序的運算符先運算,則可以使用小括弧將該運算符和操作符括起來。例如下面的表達式:(x-y)*z/5
在這個表達式中先進行括弧內的減法運算,再將結果與 z 相乘,最後將積除以 5 得出結果。整個表達式的順序按照從左向右執行,比較容易理解。
再來看一個復雜的表達式,如下所示。--y || ++x && ++z;
這個表達式中包含了算術運算符和邏輯運算符。根據表 1 中列出的優先順序,可以確定它的執行順序如下:
① 先計算 y 的自減運算符,即 --y。
② 再計算 x 的自增運算符,即 ++x。
③ 接著計算 z 的自增運算符,即 ++z。
④ 由於邏輯與比邏輯或的優先順序高,這里將 ② 和 ③ 的結果進行邏輯與運算,即 ++x && ++z。
⑤ 最後將 ④ 的結果與 ① 進行邏輯或運算,即 --y||++x&&++z。
如果沒有上述對該表達式執行順序的說明,第一眼看到它時將很難識別優先順序。對於這類問題,可以通過添加小括弧使表達的順序更加清晰,而不用去查優先順序表。如下所示為改進後的表達式。(--y)||((++x)&&(++z));
技巧:記住這么多運算符的優先順序是比較困難的,因此讀者應該在實際應用中多多練習。
因為 Java 運算符存在這種優先順序的關系,因此在做 SCJP 的時候或者某些公司的面試題,有如下 Java 代碼:
int a = 5;
int b = 4;
int c = a++- --b*++a/b-- >>2%a--;
問 c 的值是多少?這樣的語句實在太恐怖了,即使多年的老程序員看到這樣的語句也會眩暈。這樣的代碼只能在考試中出現,作為一個程序員如果寫這樣的代碼,恐怕他馬上就得走人了,因為他完全不懂程序開發。
源代碼就是一份文檔,源代碼的可讀性比代碼運行效率更重要。 因此在這里要提醒大家:
不要把一個表達式寫得過於復雜,如果一個表達式過於復雜,則把它分成幾步來完成。
不要過多地依賴運算符的優先順序來控製表達式的執行順序,這樣可讀性太差,盡量使用()來控製表達式的執行順序。
Ⅳ java運算符優先順序順序