零基礎學Java之Java學習筆記(四):運算符
算術運算符:
算術運算符是對數值類型的變量進行運算的,在 Java 程序中使用的非常多。
運算符 | 說明 | 例子 | 結果 |
+ | 加法-相加運算符兩側的值 | 9+9 | 18 |
– | 減法-左操作數減去右操作數 | 10-8 | 2 |
* | 乘法-相乘操作符兩側的值 | 7*8 | 56 |
/ | 除法-左操作數除以右操作數 | 9/9 | 1 |
% | 取余-左操作數除以右操作數的餘數 | 11%9 | 2 |
++ |
自增(前):先運算後取值 自增(後):先取值後運算 |
a=2;b=++a; a=2;b=a++; |
a=3;b=3 a=3;b=2 |
— |
自減(前):先運算後取值 自減(後):先取值後運算 |
a=2;b=–a; a=2;b=a–; |
a=1;b=1 a=1;b=2 |
算術運算符注意事項:
(1)對於除號”/”,它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而捨棄小數部分。
(2)當對一個數取模時,可以等價a%b=a-a/b*b,這樣我們看到取模的一個本質運算。
(3)當自增當做一個獨立語言使用時,不管是++i;還是i++;都是一樣的。
關係運算符(比較運算符):
運算符 | 說明 | 例子 | 結果 |
== | 檢查如果兩個操作數的值是否相等,如果相等則條件為真。 | 8==7 | false |
!= | 檢查如果兩個操作數的值是否相等,如果值不相等則條件為真。 | 8!=7 | true |
< | 檢查左操作數的值是否小於右操作數的值,如果是那麼條件為真。 | 8<7 | false |
> | 檢查左操作數的值是否大於右操作數的值,如果是那麼條件為真。 | 8>7 | true |
<= | 檢查左操作數的值是否小於或等於右操作數的值,如果是那麼條件為真。 | 8<=7 | false |
>= | 檢查左操作數的值是否大於或等於右操作數的值,如果是那麼條件為真。 | 8>=7 | true |
關係運算符注意事項:
(1)關係運算符組成的表達式,我們稱為關係表達式。eg:a > b
(2)比較運算符”==”不能誤寫成”=”。==是關係運算符,判斷是不是相等,一個=是賦值
(3)關係運算符的結果都是 boolean 型,也就是要麼是 true,要麼是 false。
(4)關係表達式 經常用在 if 結構的條件中或循環結構的條件中
邏輯運算符:
用於連接多個條件(多個關係表達式),最終的結果也是一個 boolean 值。
a | b | a&b | a&&b | a|b | a||b | !a | a^b |
true | true | true | true | true | true | false | false |
true | fasle | false | false | true | true | false | true |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | true |
false |
邏輯運算規則:
(1) a&b : & 叫邏輯與:規則:當 a 和 b 同時為 true ,則結果為 true, 否則為 false
(2) a&&b : && 叫短路與:規則:當 a 和 b 同時為 true ,則結果為 true,否則為 false
(3) a|b : | 叫邏輯或,規則:當 a 和 b ,有一個為 true ,則結果為 true,否則為 false
(4) a||b : || 叫短路或,規則:當 a 和 b ,有一個為 true ,則結果為 true,否則為 false
(5) !a : 叫取反,或者非運算。當 a 為 true, 則結果為 false, 當 a 為 false 是,結果為 true
(6) a^b: 叫邏輯異或,當 a 和 b 不同時,則結果為 true, 否則為 false
&& 和 &基本規則:
短路與&& : 條件 1&&條件 2
兩個條件都為 true,結果為 true,否則 false
邏輯與&: 條件 1&條件 2
兩個條件都為 true,結果為 true,否則 false
對於&&短路與而言,如果第一個條件為 false ,後面的條件不再判斷
對於&邏輯與而言,如果第一個條件為 false ,後面的條件仍然會判斷
&& 和 &使用區別:
(1) &&短路與:如果第一個條件為 false,則第二個條件不會判斷,最終結果為 false,效率高
(2) & 邏輯與:不管第一個條件是否為 false,第二個條件都要判斷,效率低
(3) 開發中, 我們使用的基本是使用短路與&&, 效率高
|| 和 | 基本規則:
短路或||: 條件 1||條件 2
兩個條件中只要有一個成立,結果為 true,否則為 false
|邏輯或: 條件 1|條件 2
只要有一個條件成立,結果為 true,否則為 false
||短路或:如果第一個條件為 true,則第二個條件不會判斷,最終結果為 true,效率高
| 邏輯或:不管第一個條件是否為 true,第二個條件都要判斷,效率低
|| 和 | 使用區別:
(1) ||短路或:如果第一個條件為 true,則第二個條件不會判斷,最終結果為 true,效率高
(2) | 邏輯或:不管第一個條件是否為 true,第二個條件都要判斷,效率低
(3) 開發中,我們基本使用 ||
! 取反 基本規則:
! 非(取反): !條件
如果條件本身成立,結果為 false,否則為 true
a^b: 叫邏輯異或,當 a 和 b 不同時,則結果為 true, 否則為 false
^ 基本規則:
a^b: 叫邏輯異或,當 a 和 b 不同時,則結果為 true, 否則為 false
賦值運算符:
賦值運算符就是將某個運算後的值,賦給指定的變量。
賦值運算符的分類:
基本賦值運算符: eg: int a = 10;
複合賦值運算符:+= ,-= ,*= , /= ,%= 等
eg:a += b; [等價 a = a + b; ] a -= b; [等價 a = a – b; ]
賦值運算符的特點:
(1) 運算順序從右往左 int num = a + b + c;
(2) 賦值運算符的左邊 只能是變量,右邊 可以是變量、表達式、常量值
(3) 複合賦值運算符等價於下面的效果。比如:a+=3;等價於 a=a+3; 其他類推
(4) 複合賦值運算符會進行類型轉換。
三元運算符:
語法:
條件表達式 ? 表達式 1: 表達式 2;
使用規則:
1. 如果條件表達式為 true,運算後的結果是表達式 1;
2. 如果條件表達式為 false,運算後的結果是表達式 2;
3. 表達式 1 和表達式 2 要為可以賦給接收變量的類型(或可以自動轉換)
4. 三元運算符可以轉成 if–else 語句
運算符優先級:
類別 | 操作符 | 關聯性 |
符號 | () , ; . {} | 從左到右 |
乘、除、余 | * / % | 從左到右 |
加、減 | + – | 從左到右 |
移位 | >> >>> << | 從左到右 |
關係 | > >= < <= | 從左到右 |
相等 | == != | 從左到右 |
按位與 | & | 從左到右 |
按位異或 | ^ | 從左到右 |
按位或 | | | 從左到右 |
邏輯與 | && | 從左到右 |
賦值 | = + = – = * = / =%= >> = << =&= ^ = | = | 從右到左 |
條件 | ?: | 從右到右 |
運算符優先級規則:
(1)運算符有不同的優先級,所謂優先級就是表達式運算中的運算順序。
(2)只有單目運算符、賦值運算符是從右向左運算的。
(3)不要背,使用多了,就熟悉了
總結:①(),{}等②單目運算 ++–③算術運算符④位移運算符⑤比較運算符⑥邏輯運算符⑦三元運算符⑧賦值運算符