運算子的運算優先順序共分為15級,1級最高。在表示式中,優先順序較高的先於優先順序較低的進行運算。 而在乙個運算量兩側的運算子優先順序相同時, 則按運算子的結合性所規定的結合方向處理。左結合性:如有表示式x-y+z則y應先與「-」號結合, 執行x-y運算,然後再執行+z的運算;右結合性:如x=y=z,由於「=」的右結合性,應先執行y=z再執行x=(y=z)運算。【優先順序見最下方 圖1-1】
1.算數運算子
1).概述:對資料進行算數運算的符號
2).分類:
1.常見的算數運算子:+、-、*、/、%
常見的運算子用法+
數學加法;正數;拼接
-數學減法;負數
*數學乘法
/數學除法%取餘
*注意:
+:字串與任意資料型別做+(拼接)時,會先把其他型別轉變為字串,再拼接為更長的字串
-:字元之間也可減法
/:整數與整數相除還是整數(直接取整)
%:只能用於整數
2.還有的算數運算子:++ 、 - -
注意分為前加加(減減)和後加加(減減),例如:++n:先做自加運算;n++:做完其他操作,再做自加運算
2.賦值運算子:基本賦值運算子:=
擴充套件賦值運算子:復合算數賦值(+=、-=、*=、/=、%=)、復合位運算賦值(&=、|=、^=、>>=、<<=)、>>>=
int i=10;
i +=1;
ssytem.out.
println
(i);
//11
3.比較運算子:判斷是否相等:==、!=
比較大小:>、=、<=
注意:整數、小數、字元型別可以比較大小
比較結果為:true、false
4.邏輯運算子:
含義:用於處理邏輯值,判斷是非的一些運算子
分類:基本邏輯運算子:&、|、^、!
短路邏輯運算子:&&、||
邏輯運算子
用法&(邏輯與)
全真為真,其餘為假
\(邏輯或)
見真為真,其餘為假
^(邏輯異或)
不同為真,相同為假
!(邏輯非)
取反&&(短路與)
全真為真,其餘為假 【&&前面為false時,不在繼續運算,直接為false】
\\(邏輯或)
見真為真,其餘為假【\\前面為true時,不在繼續運算,直接為true】
判斷字元是否為大寫字母
char x=
'a';
system.out.
println
(x>=
'a'& x<=
'z')
;//true
判斷字元是否為字母
char x=
'a';
system.out.
println
((x>=
'a'& x<=
'z')
|(x>=
'a'& x<=
'z'));
//true
int i=
100;
boolean b1=i<
1&& i++
>
200;
system.out.
println
(i);
//結果為100,說明前面為false時,直接結束運算了
int j=
100;
boolean b2=j++
<
1000
|| j--
>
200;
system.out.
println
(j);
//結果為101,說明前面為true時,直接結束運算了
5.條件運算子(三元運算子、三目運算子)
格式:表示式1 ? 表示式2 :表示式3
說明:表示式1運算結果必須為boolean型別
表示式2和3必須有運算結果,型別不限
表示式1為true,結果為表示式2;表示式1為false,結果為表示式3
//判斷奇偶性
int i=1;
system.out.
println
(i%2==0
?"偶數"
:"奇數"
);
6.位運算子含義:參與運算的量,按二進位制位進行運算
分類:位與(&)、位或(|)、位非(~)、位異或(^)、左移(<>)、無符號右移(>>>)
符號用法(0為false,1為true;都操作補碼)
&全1為1,其餘為0
/全0為0,其餘為1
^相同為0,不同為1
~1變0,0變1
<<
左移一位,翻倍
>>
右移一位,減半
>>>
右移一位,減半(針對正數)
eg:
1)5&20=4
將5和20都變成補碼,再根據規則得到結果的補碼,再將結果補碼變成原碼,得到最終結果4
2)3^5^5=3
**異或同乙個整數兩次得到本身**
3)20<<1 = 40
20>>1 = 20
-5>>1 = -3
20>>>1= 10
int a =10;
int b =20;
//第一種:
int c ;
c=a;
a=b;
b=c;
//第二種:
a = a+b;
b = a-b;
a = a-b;
//第三種:
a = a^b;
b = a^b;
a = a^b;
7.逗號運算子含義:用於把若干表示式組合成乙個表示式
符號:,
8.指標運算子符號用途*
取內容&
取位址9.求位元組數運算子
含義:用於計算資料型別所佔的位元組數
符號:sizeof
10.特殊運算子
有括號(),下標,成員(→,.)等幾種
(圖1-1)
運算子優先順序及結合
下面的內容為本人無聊時自我猜想,不保正內容的正確性,如有問題,請見諒。0 空格可以告訴編譯器名顯邏輯 1 注意向後不能連續有三個以上 可以用空格告訴編譯器明顯的邏輯。如 不能有a b 可以有a b 2 注意向前不能有連續兩個以上 可以用空格告訴編譯器明顯的邏輯。如 不能有a b 可以有a b或a b...
運算子 優先順序 結合性
語言的運算子可分為以下幾類 1.算術運算子 用於各類數值運算。包括加 減 乘 除 求餘 或稱模運算,自增 自減 共七種。2.關係運算子 用於比較運算。包括大於 小於 等於 大於等於 小於等於 和不等於 六種。3.邏輯運算子 用於邏輯運算。包括與 或 非 三種。4.位操作運算子 參與運算的量,按二進位...
運算子優先順序 C 運算子優先順序
c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...