導航:首頁 > 編程語言 > java運算順序

java運算順序

發布時間:2022-10-02 23:29:52

java的運算符都是從右到左進行的嗎

首先,運算符運算的時候,先要考慮優先順序;
如果是同級的就得考慮結合性;從右向左執行,相當於 後面多了個括弧,aa(aa)
經驗,一般的時候綜合性問題,用括弧解決,避免麻煩

❷ Java運算符計算順序問題

因為

❸ java中的運算++順序

int x = -1;
int y =
x++
+
++x ;
我教你一個法,你把程序寫成上面的形式,在調試可以看出,程序給先計算x++ 在 ++x 然後它會把 x++運算的結果賦給y。如果 int y = ++x + x++;結果是一樣的。

❹ java計算順序問題

x+=x+(x=1)
等同於
x = x + x + (x = 1)
先不說優先順序,計算機在計算時候都是從左往右計算的,每次計算前都會檢查運算符的優先順序
當從左開始時候
3 + 3 = 6
然後繼續 ,碰見 + ( x = 1 ) 小括弧,優先計算小括弧里的,小括弧里是賦值,結果為1,繼續
6 + 1 = 7
所以最後 x= 7

===================================================

這樣理解吧:

String str="a";Object result = 1 + 1 + ( 1 + str );System.out.println( result );這個result結果是「21a」,這個就能說明它是從左往右掃描,逐步計算的

以上回答你滿意么?

❺ java運算符的優先順序口訣急用急用!!

個表達式中進行若干操作時,每一部分都會按預先確定的順序進行計算求解,稱這個順序為運算符的優先順序。

在表達式中,當運算符不止一種時,要先處理算術運算符,接著處理比較運算符,然後再處理邏輯運算符。所有比較運算符的優先順序都相同;也就是說,要按它們出現的順序從左到右進行處理。而算術運算符和邏輯運算符則必須按下列優先順序進行處理:

算術
指數運算 (^)
負數 (–)
乘法和除法 (*、 /)
整數除法 (\)
求模運算 (Mod)
加法和減法 (+、 –)
字元串連接 (&)

比較
相等 (=)
不等 (<>)
小於 (<)
大於 (>)
小於或相等 (<=)
大於或相等 (>=)
Like
Is

邏輯
Not
And
Or
Xor
Eqv
Imp

當乘法和除法同時出現在表達式中時,每個運算都按照它們從左到右出現的順序進行計算。當乘法和除法同時出現在表達式中時,每個運算也都按照它們從左到右出現的順序進行計算。可以用括弧改變優先順序,強令表達式的某些部分優先運行。括弧內的運算總是優先於括弧外的運算。但是,在括弧之內,運算符的優先順序不變。

字元串連接運算符 (&) 不是算術運算符,但是,就其優先順序而言,它在所有算術運算符之後,而在所有比較運算符之前。

Like 的優先順序與所有比較運算符都相同,實際上是模式匹配運算符。

Is 運算符是對象引用的比較運算符。它並不將對象或對象的值進行比較,而只確定兩個對象引用是否參照了相同的對象。

❻ java中運算順序問題

++ -- 運算符的機制是這樣的:
如果在右邊, 就是先用變數的值,然後再加1 或者減1
如果在左邊,就是先加1或減1 , 再用變數的值

c=a++; 在右邊, 那麼就是第一種情況 先把a的值賦值給c ,所以C為3, 然後a再加1. a=4
d=b--; 在右邊, 也是第一種情況, 把b的值賦值給d, d=4 b =3

❼ 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中的運算

因為2和5都是整數,所以2/5發生的是整除,會直接丟棄小數部分,結果是0。

而12%5是求12除以5後的余數,結果是2。

所以,1-2/5+12%5=1-0+2=3。

下圖是驗證:

❾ JAVA運算優先順序

先運算b+2=22,然後是a-=22,a=-12.最後是 a+=-12, a=-2.

運算符優先順序表
優先順序 運算符 結合性
1 () [] . 從左到右
2 ! +(正) -(負) ~ ++ -- 從右向左
3 * / % 從左向右
4 +(加) -(減) 從左向右
5 << >> >>> 從左向右
6 < <= > >= instanceof 從左向右
7 == != 從左向右
8 &(按位與) 從左向右
9 ^ 從左向右
10 | 從左向右
11 && 從左向右
12 || 從左向右
13 ?: 從右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 從右向左

❿ Java運算優先順序問題

x+=x+(x=1)

等同於

x=x+x+(x=1)

先不說優先順序,計算機在計算時候都是從左往右計算的,每次計算前都會檢查運算符的優先順序

當從左開始時候

3+3=6

然後繼續,碰見+(x=1)小括弧,優先計算小括弧里的,小括弧里是賦值,結果為1,繼續

6+1=7

所以最後x=7


===================================================


這樣理解吧:


Stringstr="a";
Objectresult=1+1+(1+str);
System.out.println(result);

這個result結果是「21a」,這個就能說明它是從左往右掃描,逐步計算的

閱讀全文

與java運算順序相關的資料

熱點內容
程序員級別數學演算法邏輯 瀏覽:897
2k21公園怎麼換伺服器 瀏覽:724
php釋放資料庫連接 瀏覽:722
php網頁抓取工具 瀏覽:726
android設置對齊方式 瀏覽:23
linux創建網頁 瀏覽:280
凈化車間門演算法 瀏覽:934
安卓怎麼搞jpg 瀏覽:546
如來佛祖命令雷神去下界 瀏覽:856
新電腦管家下載好怎麼解壓 瀏覽:530
php獲取介面數據 瀏覽:767
最後的命令 瀏覽:921
如何添加手機app桌面快捷圖標 瀏覽:427
ui設計師與程序員 瀏覽:417
壽司pdf 瀏覽:828
pythonbg是什麼 瀏覽:248
c數值演算法程序大全 瀏覽:787
android整點報時 瀏覽:221
稀土pdf 瀏覽:536
單片機電子鎖 瀏覽:596