運算符是一種特殊的符號,用以表示數據的運算、賦值和比較等。 Java運算符分為以下幾種: • 算術運算符:+,-,*,/,%,++,-- • 賦值運算符:= • 擴展後的賦值運算符:+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>= • 位運算符:&,|,~,^,<<,>>,> ...
運算符是一種特殊的符號,用以表示數據的運算、賦值和比較等。
Java運算符分為以下幾種:
• 算術運算符:+,-,*,/,%,++,--
• 賦值運算符:=
• 擴展後的賦值運算符:+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>=
• 位運算符:&,|,~,^,<<,>>,>>>
• 比較運算符:>,>=,<,<=,==
• 邏輯運算符:&&,&,||,|,!,^
• 三目運算符:? :
1、算術運算符
1)+:加法運算符
例如如下代碼:
int a = 1;
int b = 2;
int sum = a+b;
System.out.println(sum); //sum的值為3
另外,+還可以作為字元串的連接運算符。
2)-:減法運算符
例如如下代碼:
int a = 3;
int b = 2;
int sub = a-b;
System.out.println(sub); //sub的值為1
3)*:乘法運算符
例如如下代碼:
int a = 5;
int b = 6;
int multiply = a*b;
System.out.println(multiply ); //multiply 的值為30
4)/:除法運算符
例如如下代碼:
int a = 10;
int b = 5;
int div = a/b;
System.out.println(div); //div的值為2
註:如果除法運算符的兩個操作數都是整數類型,則計算結果為整數,除數不可以為0,否則會引發異常;如果除法運算符的兩個操作數中至少一個是浮點數,則計算結果也是浮點數,此時除數可以為0或0.0,得到的結果是正無窮大或負無窮大。
5)%:求餘運算符(取模運算符)
例如如下代碼:
int a = 10;
int b = 3;
int mod = a%b;
System.out.println(mod ); //mod 的值為1
註:求餘運算符的結果不一定總是整數。如果求餘運算符的兩個操作數都是整數,則第二個操作數不能為0(同除法運算規則);如果求餘運算符的兩個操作數中至少一個是浮點數,則第二個操作數可以是0或0.0,但求餘結果是是非數:NaN。
6)++:自加運算符
++自加運算符是單目運算符(一元運算符),只有一個操作數。運算符既可以放在操作數的左邊也可以放在操作數的右邊。如果把++放在左邊,則先把操作數加1,然後再運算;如果把++放在右邊,則先運算,然後再把操作數加1。
自加運算符放在操作數左邊的代碼:
int a = 2;
int b = ++a + 3; //a先自加,然後再執行算術運算
System.out.println(a); //a的值為3
System.out.println(b); //b 的值為6
自加運算符放在操作數右邊的代碼:
int a = 2;
int b = a++ + 3; //a先執行算術運算,再自加
System.out.println(a); //a的值為3
System.out.println(b); //b 的值為5
7)--:自減運算符
--自減運算符也是單目運算符(一元運算符),只有一個操作數。用法與++類似,只是將操作數的值減1;
註:自加和自減只能用於操作變數,不能用於操作數值直接量、常量或表達式。例如3--是錯誤的!
2. 賦值運算符
賦值運算符用於為變數指定變數值。
例如 String str = "java"; //為變數str賦值java
3. 擴展後的賦值運算符
+=:對於a+=b,即對應於a=a+b。
-=:對於a-=b,即對應於a=a-b。
*=:對於a*=b,即對應於a=a*b。
/=:對於a/=b,即對應於a=a/b。
%=:對於a%=b,即對應於a=a%b。
&=:對於a&=b,即對應於a=a&b。
|=:對於a|=b,即對應於a=a|b。
^=:對於a^=b,即對應於a=a^b。
<<=:對於a<<=b,即對應於a=a<<b。
>>=:對於a>>=b,即對應於a=a>>b。
>>>=:對於a>>>=b,即對應於a=a>>>b。
4. 位運算符
&:按位與。當兩位同時為1時才返回1。
|:按位或。只要有一位為1就返回1。
~:按位非。單目運算符,將操作數的每一位(包括符號位)全部取反。
^:按位異或。當兩位不同時返回1,相同時返回0。
<<:左移運算符
>>:右移運算符
>>>:無符號右移運算符
代碼示例如下:
System.out.println(5&9); //輸出1
System.out.println(5|9); //輸出13
System.out.println(~-5); //輸出4
System.out.println(5^9); //輸出12
System.out.println(5<<2); //輸出20
System.out.println(-5<<2); //輸出-20
System.out.println(-5>>2); //輸出-2
System.out.println(-5>>>2); //輸出1073741822
5. 比較運算符
比較運算符用於判斷兩個常量或變數的大小,比較結果是是一個布爾值(true或false)。
比較運算符有:>(大於),>=(大於等於),<(小於),<=(小於等於),==(等於)。
代碼示例如下:
System.out.println(7>3); //輸出true
System.out.println(7<=3); //輸出false
6. 邏輯運算符
邏輯運算符用於操作兩個布爾的變數或常量,有如下6個:
&&:與,兩個操作數都為true才返回true,否則返回false。
&:不短路與,作用與&&相同,但不會短路。
||:或,兩個操作數只要有一個為true,就返回true,兩個操作數都為false才返回false。
|:不短路或,作用與||相同,但不會短路。
!:非,或取反,如果操作數是true,則返回false。如果是false,則返回true。
^:異或,當兩個操作數不同時才返回true,相同返回false。
下麵代碼示範了邏輯運算符短路與不短路的區別(以|和||的區別為例):
int a = 3;
int b = 9;
if(a>2 | b++ >9){
System.out.println(b); //輸出10,說明b++ >9得到了計算
}
if(a>2 || b++ >9){
System.out.println(b); //輸出9,說明b++ >9沒有得到了計算
}
&與&&的區別與此類似。
7. 三目運算符
三目運算符:? :,語法格式如下:
(expression) ? if-true-statement : if-false-statement
三目運算符的語法規則是:先對邏輯表達式expression求值,如果expression返回true,則返回第二個操作數的值,否則返回第三個操作數的值。
程式實例如下:
String str = 7>4?"7大於4":"7不大於4";
System.out.println(str); //輸出7大於4
8. 運算符的優先順序
運算符說明 | Java運算符 |
分隔符 | . [] () {} , ; |
單目運算符 | ++ -- ~ ! |
強制類型轉換運算符 | (type) |
乘法、除法、求餘 | * / % |
加法、減法 | + - |
移位運算符 | << >> >>> |
關係運算符 | < <= > >= instanceof |
等價運算符 | == != |
按位與 | & |
按位異或 | ^ |
按位或 | | |
條件與 | && |
條件或 | || |
三目運算符 | ?: |
賦值 | = += -= *= /= &= |= ^= %= <<= >>= >>>= |
歡迎關註微信公眾號【Java典籍】,收看更多Java技術乾貨!關註即送java全套資料一份
▼微信掃一掃下圖↓↓↓二維碼關註