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

java運算符順序

發布時間:2022-10-02 19:23:48

java 中|| 和 && 這類的符號都表示什麼

&&和||是一種邏輯運算符,&&是邏輯與,當兩個數都為真,則結果為真。||是邏輯或,兩個數任意一個為真,則結果為真。

舉個例子:

1、a && b

當a、b都為真時,結果為真。有一個為假或者都為假時結果為假。

2、a || b

當a、b有一個為真時,結果為真。a、b都為假時結果為假。

(1)java運算符順序擴展閱讀:

在java中還有其他的邏輯符號,比如:!、|、 &

「!」是非運算符號,比如a為真,則!a則為假。a如果為假,則!a為真。

而「|」也是邏輯或,「&」也是邏輯與,但是他們與「||」和「&&」有些區別,區別如下:

「&」與「|」無論第一個判斷條件是否成立,邏輯運算符前後兩個條件都會進行判斷。

「&&」與「||」,前者第一個條件不成立,後面的條件均不進行判斷,返回false;後者第一個條件成立,後面的條件均不進行判斷,返回true。

② java語言中,是++優先還是*優先計算的優先順序是例:z=y*x++,其中x=5,y=9,答案是還有,++x和x++

Java中的運算符按優先順序從高到低排列如下:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op= 。具體解釋如下:
--運算符用於表示減1操作。++和--運算符既可以作為前綴運算符,也可以做為後綴運算符。雙目整數運算符是:運算符操作**+加-減*乘/除%取模&位與|位或^位異或<<左移 >>右移(帶符號) >>>添零右移整數除法按零舍入。
如果X=5,y=9.z=y*x++應該按著運算符的優先順序先算X++,再算y*X++所以Z=5*9=45.
下面在解釋++X和X++。如果X++意思是先引用,後自增,就如上題。X=5,X此時等於5,當下次循環再用到X時,X就等於6了,因為X++後就是6。而++X正好相反,當X=5,++X後X此時等於6。下次循環引用時是7。所以他是先自增後引用。理解了後就記住,++X是先自增後引用,而X++是先引用後自增。解釋完畢,求給分,全手打不容易。

③ 在java運算符&&,||,==,+中優先順序最高的是

&&,|| 這兩個是同級的順序為左到右
==是比較 比上面的優先
+優先最高
如1+3==4&&2-1==1 true
先執行+ 然後 == 然後 && 或者 ||
public class T {
public static void main(String[] args) {
System.out.println(1+3==4&&2-1==1);
}
}
輸出是true 很容易說明問題

④ Java運算符計算順序問題

因為

⑤ java都有哪些運算符及其用法

Java的運算符可分為4類:算術運算符、關系運算符、邏輯運算符和位運算符。

1.算術運算符
Java的算術運算符分為一元運算符和二元運算符。一元運算符只有一個操作數;二元運算符有兩個操作數,運算符位於兩個操作數之間。算術運算符的操作數必須是數值類型。

(1)一元運算符:
一元運算符有:正(+)、負(-)、加1(++)和減1(--)4個。
加1、減1運算符只允許用於數值類型的變數,不允許用於表達式中。加1、減1運算符既可放在變數之前(如++i),也可放在變數之後(如i++),兩者的差別是:如果放在變數之前(如++i),則變數值先加1或減1,然後進行其他相應的操作(主要是賦值操作);如果放在變數之後(如i++),則先進行其他相應的操作,然後再進行變數值加1或減1。
例如:
int i=6,j,k,m,n;
j = +i; //取原值,即j=6
k = -i; //取負值,即k=-6
m = i++; //先m=i,再i=i+1,即m=6,i=7
m = ++i; //先i=i+1,再m=i,即i=7,m=7
n = j--; //先n=j,再j=j-1,即n=6,j=5
n = --j; //先j=j-1,再n=j,即j=5,n=5
在書寫時還要注意的是:一元運算符與其前後的操作數之間不允許有空格,否則編譯時會出錯。

(2)二元運算符
二元運算符有:加(+)、減(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、減、乘、除四則運算,%是求兩個操作數相除後的余數。

%求余操作舉例:
a % b = a - (a / b) * b
取余運算符既可用於兩個操作數都是整數的情況,也可用於兩個操作數都是浮點數(或一個操作數是浮點數)的情況。當兩個操作數都是浮點數時,例如7.6 % 2.9時,計算結果為:7.6 - 2 * 2.9 = 1.8。
當兩個操作數都是int類型數時,a%b的計算公式為:
a % b = a - (int)(a / b) * b
當兩個操作數都是long類型(或其他整數類型)數時,a%b的計算公式可以類推。

當參加二元運算的兩個操作數的數據類型不同時,所得結果的數據類型與精度較高(或位數更長)的那種數據類型一致。

例如:
7 / 3 //整除,運算結果為2
7.0 / 3 //除法,運算結果為2.33333,即結果與精度較高的類型一致
7 % 3 //取余,運算結果為1
7.0 % 3 //取余,運算結果為1.0
-7 % 3 //取余,運算結果為-1,即運算結果的符號與左操作數相同
7 % -3 //取余,運算結果為1,即運算結果的符號與左操作數相同

2.關系運算符
關系運算符用於比較兩個數值之間的大小,其運算結果為一個邏輯類型的數值。關系運算符有六個:等於(==)、不等於(!=)、大於(>)、大於等於(>=)、小於(<)、小於等於(<=)。

例如:
9 <= 8 //運算結果為false
9.9 >= 8.8 //運算結果為true
'A' < 'a' //運算結果為true,因字元'A'的Unicode編碼值小於字元'a'的
要說明的是,對於大於等於(或小於等於)關系運算符來說,只有大於和等於兩種關系運算都不成立時其結果值才為false,只要有一種(大於或等於)關系運算成立其結果值即為true。例如,對於9 <= 8,9既不小於8也不等於8,所以9 <= 8 的運算結果為false。對於9 >= 9,因9等於9,所以9 >= 9的運算結果為true。

3.邏輯運算符
邏輯運算符要求操作數的數據類型為邏輯型,其運算結果也是邏輯型值。邏輯運算符有:邏輯與(&&)、邏輯或(||)、邏輯非(!)、邏輯異或(^)、邏輯與(&)、邏輯或(|)。
真值表是表示邏輯運算功能的一種直觀方法,其具體方法是把邏輯運算的所有可能值用表格形式全部羅列出來。Java語言邏輯運算符的真值表如下:
邏輯運算符的真值表
A B A&&B A||B !A A^B A&B A|B
false false false false true false false false
true false false true false true false true
false true false true true true false true
true true true true false false true true

前兩列是參與邏輯運算的兩個邏輯變數,共有4種可能,所以表2.5共有4行。後6列分別是6個邏輯運算符在邏輯變數A和邏輯變數B取不同數值時的運算結果值。
要說明的是,兩種邏輯與(&&和&)的運算規則基本相同,兩種邏輯或(||和|)的運算規則也基本相同。其區別是:&和|運算是把邏輯表達式全部計算完,而&&和||運算具有短路計算功能。所謂短路計算,是指系統從左至右進行邏輯表達式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。對於&&運算來說,只要運算符左端的值為false,則因無論運算符右端的值為true或為false,其最終結果都為false。所以,系統一旦判斷出&&運算符左端的值為false,則系統將終止其後的計算過程;對於 || 運算來說,只要運算符左端的值為true,則因無論運算符右端的值為true或為false,其最終結果都為true。所以,系統一旦判斷出|| 運算符左端的值為true,則系統將終止其後的計算過程。

例如,有如下邏輯表達式:
(i>=1) && (i<=100)
此時,若i等於0,則系統判斷出i>=1的計算結果為false後,系統馬上得出該邏輯表達式的最終計算結果為false,因此,系統不繼續判斷i<=100的值。短路計算功能可以提高程序的運行速度。
作者建議讀者:在程序設計時使用&&和||運算符,不使用&和|運算符。

用邏輯與(&&)、邏輯或(||)和邏輯非(!)可以組合出各種可能的邏輯表達式。邏輯表達式主要用在 if、while等語句的條件組合上。
例如:
int i = 1;
while(i>=1) && (i<=100) i++; //循環過程
上述程序段的循環過程將i++語句循環執行100次。

4.位運算符
位運算是以二進制位為單位進行的運算,其操作數和運算結果都是整型值。
位運算符共有7個,分別是:位與(&)、位或(|)、位非(~)、位異或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。
位運算的位與(&)、位或(|)、位非(~)、位異或(^)與邏輯運算的相應操作的真值表完全相同,其差別只是位運算操作的操作數和運算結果都是二進制整數,而邏輯運算相應操作的操作數和運算結果都是邏輯值。

位運算示例
運算符 名稱 示例 說明
& 位與 x&y 把x和y按位求與
| 位或 x|y 把x和y按位求或
~ 位非 ~x 把x按位求非
^ 位異或 x^y 把x和y按位求異或
>> 右移 x>>y 把x的各位右移y位
<< 左移 x<<y 把x的各位左移y位
>>> 右移 x>>>y 把x的各位右移y位,左邊填0

舉例說明:
(1)有如下程序段:
int x = 64; //x等於二進制數的01000000
int y = 70; //y等於二進制數的01000110
int z = x&y //z等於二進制數的01000000
即運算結果為z等於二進制數01000000。位或、位非、位異或的運算方法類同。
(2)右移是將一個二進制數按指定移動的位數向右移位,移掉的被丟棄,左邊移進的部分或者補0(當該數為正時),或者補1(當該數為負時)。這是因為整數在機器內部採用補碼表示法,正數的符號位為0,負數的符號位為1。例如,對於如下程序段:
int x = 70; //x等於二進制數的01000110
int y = 2;
int z = x>>y //z等於二進制數的00010001
即運算結果為z等於二進制數00010001,即z等於十進制數17。
對於如下程序段:
int x = -70; //x等於二進制數的11000110
int y = 2;
int z = x>>y //z等於二進制數的11101110
即運算結果為z等於二進制數11101110,即z等於十進制數-18。要透徹理解右移和左移操作,讀者需要掌握整數機器數的補碼表示法。
(3)0填充的右移(>>>)是不論被移動數是正數還是負數,左邊移進的部分一律補0。

5.其他運算符

(1)賦值運算符與其他運算符的簡捷使用方式
賦值運算符可以與二元算術運算符、邏輯運算符和位運算符組合成簡捷運算符,從而可以簡化一些常用表達式的書寫。
賦值運算符與其他運算符的簡捷使用方式
運算符 用法 等價於 說明
+= s+=i s=s+i s,i是數值型
-= s-=i s=s-i s,i是數值型
*= s*=i s=s*i s,i是數值型
/= s/=i s=s/i s,i是數值型
%= s%=i s=s%i s,i是數值型
&= a&=b a=a&b a,b是邏輯型或整型
|= a|=b a=a|b a,b是邏輯型或整型
^= A^=b a=a^b a,b是邏輯型或整型
<<= s<<=i s=s<<i s,i是整型
>>= s>>=i s=s>>i s,i是整型
>>>= s>>>=i s=s>>>i s,i是整型

(2)方括弧[]和圓括弧()運算符
方括弧[]是數組運算符,方括弧[]中的數值是數組的下標,整個表達式就代表數組中該下標所在位置的元素值。
圓括弧()運算符用於改變表達式中運算符的優先順序。

(3)字元串加(+)運算符
當操作數是字元串時,加(+)運算符用來合並兩個字元串;當加(+)運算符的一邊是字元串,另一邊是數值時,機器將自動將數值轉換為字元串,這種情況在輸出語句中很常見。如對於如下程序段:
int max = 100;
System.out.println("max = "+max);
計算機屏幕的輸出結果為:max = 100,即此時是把變數max中的整數值100轉換成字元串100輸出的。

(4)條件運算符(?:)
條件運算符(?:)的語法形式為:
<表達式1> ?<表達式2> : <表達式3>
條件運算符的運算方法是:先計算<表達式1>的值,當<表達式1>的值為true時,則將<表達式2>的值作為整個表達式的值;當<表達式1>的值為false時,則將<表達式3>的值作為整個表達式的值。如:
int a=1,b=2,max;
max = a>b?a:b; //max等於2

(5)強制類型轉換符
強制類型轉換符能將一個表達式的類型強制轉換為某一指定數據類型,其語法形式為:
(<類型>)<表達式>

(6)對象運算符instanceof
對象運算符instanceof用來測試一個指定對象是否是指定類(或它的子類)的實例,若是則返回true,否則返回false。

(7)點運算符
點運算符「.」的功能有兩個:一是引用類中成員,二是指示包的層次等級。

6.運算符的優先順序
以下按優先順序從高到低的次序列出Java語言中的所有運算符,表中結合性一列中的「左右」表示其運算次序為從左向右,「右左」表示其運算次序為從右向左。

優先順序 運算符 結合性
1 . [] () ; ,
2 ++ ―― += ! ~ +(一元) -(一元) 右左
3 * / % 左右
4 +(二元) -(二元) 左右
5 << >> >>> 左右
6 < > <= >= instanceof 左右
7 = = != 左右
8 & 左右
9 ^ 左右
10 | 左右
11 && 左右
12 || 左右
13 ?: 右左
14 = *= /= %= += -= <<= >>= >>>= &= ^= |= 右左

⑥ java運算符優先順序

Java中的運算符按優先順序從高到低排列如下:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op= 。 Java中整數運算符在整數運算時,如果操作數是long類型,則運算結果是long類型,否則為int類型,絕不會是byte,short或char型。這樣,如果變數i被聲明為short或byte,i+1的結果會是int。如果結果超過該類型的取值范圍,則按該類型的最大值取模。單目整數運算符是: 運算符操作-單目非~位補碼++加1--減1 一、運算符"+",如果必要則自動把操作數轉換為String型。如果操作數是一個對象,它可定義一個方法toString()返回該對象的String方式,例如floata=1.0print(「Thevalueofais」+a+「\n」);+運算符用到的例子Strings=「a=」+a;+=運算符也可以用於String。注意,左邊(下例中的s1)僅求值一次。s1+=a;//s1=s1+a//若a非String型,自動轉換為String型。 二、整數算術運算的異常是由於除零或按零取模造成的。它將引發一個算術異常。下溢產生零,上溢導致越界。例如:加1超過整數最大值,取模後,變成最小值。一個op=賦值運算符,和上表中的各雙目整數運算符聯用,構成一個表達式。整數關系運算符<,>,<=,>=,==和!=產生boolean類型的數據。 三、數組運算符數組運算符形式如下:<expression>[<expression>]可給出數組中某個元素的值。合法的取值范圍是從0到數組的長度減1。 四、對象運算符雙目運算符instanceof測試某個對象是否是指定類或其子類的實例。例如:if(myObjectinstanceofMyClass){MyClassanothermyObject=(MyClass)myObject;…}是判定myObject是否是MyClass的實例或是其子類的實例。 五、浮點運算符浮點運算符可以使用常規運算符的組合:如單目運算符++、--,雙目運算符+、-、*和/,以及賦值運算符+=,-=,*=,和/=。此外,還有取模運算:%和%=也可以作用於浮點數,例如:a%b和a-((int)(a/b)*b)的語義相同。這表示a%b的結果是除完後剩下的浮點數部分。只有單精度操作數的浮點表達式按照單精度運算求值,產生單精度結果。如果浮點表達式中含有一個或一個以上的雙精度操作數,則按雙精度運算,結果是雙精度浮點數。 六、布爾運算符布爾(boolean)變數或表達式的組合運算可以產生新的boolean值。單目運算符!是布爾非。雙目運算符&,|和^是邏輯AND,OR和XOR運算符,它們強制兩個操作數求布爾值。為避免右側操作數冗餘求值,用戶可以使用短路求值運算符&&和||。 七、用戶可以使用==和!=,賦值運算符也可以用&=、|=、^=。三元條件操作符和C語言中的一樣。 八、++運算符用於表示直接加1操作。增量操作也可以用加運算符和賦值操作間接完成。++lvalue(左值表示lvalue+=1,++lvalue也表示lvalue=lvalue+1。 九、--運算符用於表示減1操作。++和--運算符既可以作為前綴運算符,也可以做為後綴運算符。雙目整數運算符是:運算符操作**+加-減*乘/除%取模&位與|位或^位異或<<左移 >>右移(帶符號) >>>添零右移整數除法按零舍入。除法和取模遵守以下等式:

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

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

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

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

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

邏輯
Not
And
Or
Xor
Eqv
Imp

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

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

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

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

閱讀全文

與java運算符順序相關的資料

熱點內容
php查殺軟體 瀏覽:875
教育管理學pdf 瀏覽:545
伺服器均衡怎麼使用 瀏覽:624
linux中jps 瀏覽:952
單片機實驗感想 瀏覽:560
程序員級別數學演算法邏輯 瀏覽:899
2k21公園怎麼換伺服器 瀏覽:724
php釋放資料庫連接 瀏覽:722
php網頁抓取工具 瀏覽:726
android設置對齊方式 瀏覽:23
linux創建網頁 瀏覽:280
凈化車間門演算法 瀏覽:934
安卓怎麼搞jpg 瀏覽:546
如來佛祖命令雷神去下界 瀏覽:856
新電腦管家下載好怎麼解壓 瀏覽:530
php獲取介面數據 瀏覽:767
最後的命令 瀏覽:921
如何添加手機app桌面快捷圖標 瀏覽:427
ui設計師與程序員 瀏覽:418
壽司pdf 瀏覽:828