標籤:java學習 運算子 運算式
第五章 Java運算子和運算式
定義:運算子是指具有運算功能的符號。參與運算的資料稱為運算元。運算子和運算元按照一定的規則群組成的式子稱為運算式。
運算子的分類:
根據運算元個數不同分類:單目運算子(一元運算子)、雙目運算子(二元運算子)、三目運算子(三元運算子)
根據性質或用途不同分類:算術運算子(+、-、*、/、%、++、--)、關係運算子(>、<、>=、<=、= =、!=)、邏輯運算子(!、&&、||)、位元運算符(>>、<<、>>>、&、|、∧、~)、賦值運算子(=、+=、—=、*=、/=、%=等)、條件運算子(?和:成對使用)
算術運算子與算術運算式
| 分類 |
運算子 |
名稱 |
樣本 |
描述 |
雙 目 運 算 符 |
+ |
加法 |
A+B |
A加B |
| - |
減法 |
A-B |
A減B |
| * |
乘法 |
A*B |
A乘以B
|
| / |
除法 |
A/B |
A除以B |
| % |
取餘運算 |
A%B |
A除以B取餘數 |
單 目 運 算 符 |
+ |
正號 |
+A |
正A |
| - |
負號 |
-A |
負A |
| ++ |
自增 |
++A,A++ |
A自加1 |
| -- |
自減 |
--A,A-- |
A自減1 |
整型資料在進行除法(/)運算時,結果只保留值的整數部分。
單目運算子中的自增和自減運算子位於運算元左側和右側是不同的。二者區別:位於左側時,運算元先自增或自減 1後再使用運算元;位於右側時,先使用運算元,再使運算元自增或自減1。
關係運算子與關聯運算式
| 運算子 |
名稱 |
樣本 |
描述 |
| == |
等於 |
A==B |
A等於B嗎 |
| != |
不等於 |
A!=B |
A不等於B嗎 |
| > |
大於 |
A>B |
A大於B嗎 |
| < |
小於 |
A<B |
A小於B嗎 |
>=
|
大於等於 |
A>=B |
A大於等於B嗎 |
| <= |
小於等於 |
A<=B |
A小於等於B嗎 |
關聯運算式的運算次序是先分別算出運算子兩側的值,再把二者作比較。
字元型資料按其在Unicode標準字元集中的位置值進行比較。常見字元的位置值由小到大順序是:空格<‘0‘<... <‘9‘<‘A‘<...<‘Z‘<‘a‘<...<"z"<任何漢字。
邏輯運算子
| 運算子 |
名稱 |
樣本 |
描述 |
| ! |
邏輯非 |
!A |
A為true時結果為false,A為false時結果為true |
| && |
邏輯與 |
A&&B |
A、B同為true時結果為true,否則為false |
| || |
邏輯或 |
A||B |
A、B同為false時結果為false,否則為true |
| ∧ |
邏輯異或 |
A∧B |
A、B同為true或同為false時結果為false,否則結果為true |
“&&”和“||”又稱為“短路與”和“短路或”。如果“&&”左邊運算式值為false,則整個運算式的值為false, 編譯器不再運算右邊的運算式。同樣,如果“||”左邊的運算式值為true,則整個運算式的值為true,編譯器不 再運算右邊的運算式。
賦值運算子:Java中的“=”表示的是賦值運算子,不同於數學中的等號(Java中表示等於的運算子是用兩個連在 一起的等號(“==”)表示)。例如運算式 A+=B 表示 A=A+B,意思是A加B後的值賦值給A。
位元運算符:Java中提供了可以直接對位元進行操作的位元運算符。“~”表示按位取反,“&”表示按位與運 算,“|”表示按位或運算,“∧”按位異或,“<<”左移,“>>”帶符號右移,“>>>”無符號右移。
電腦系統中為了便於對數值進行處理,數值一律用補碼錶示。其中,正數的補碼與原碼相同,符號位為0,例如 +9的補碼為00001001;負數的補碼為:符號位為1,其餘位元該數絕對值的原碼按位取反,然後整個數加1。例如: 對於-7來說,符號位為1,+7的原碼為0000111(除去符號位,剩下7位),取反後得到1111000,加1得到1111001, 則-7的補碼為11111001。
在不溢出的情況下,左移運算相當於乘運算,左移n位相當於該運算元乘以2的n次方;右移運算相當於除運算,右 移n位相當於該運算元除以2的n次方。
條件運算子:expression1?expression12:expression13;
運算式expression1的值必須為布爾型,運算式expression12和expression13的值可以為任意類 型,且類型可以不同。
條件運算式的值取決於expression1的判斷結果,如果expression1結果為true,則執行運算式2, 否則執行運算式3。
Java學習筆記—第五章