1.運算符的分類 1.算術運算符:+(加法)、-(減法)、*(乘法)、/(除法)、%(取模/取餘)、++(自增)、--(自減) 2.賦值運算符:=(賦值)、+=(加等)、-=(減等)、*=(乘等)、/=(除等)、%=(模等/取餘等) 3.關係運算符:>(大於)、<(小於)、>=(大於等於)、<=(小 ...
1.運算符的分類
1.算術運算符:+(加法)、-(減法)、*(乘法)、/(除法)、%(取模/取餘)、++(自增)、--(自減)
2.賦值運算符:=(賦值)、+=(加等)、-=(減等)、*=(乘等)、/=(除等)、%=(模等/取餘等)
3.關係運算符:>(大於)、<(小於)、>=(大於等於)、<=(小於等於)、==(等於)、!=(不等於)、instanceof(對象是否是類的實例)
4.邏輯運算符:&&(短路與)、||(短路或)、^(異或)、&(邏輯與)、|(邏輯或)、!(邏輯非)
5.位運算符:&(按位與)、|(按位或)、^(按位異或)、~(取反)、>>(按位右移)、<<(按位左移)
6.其他運算符:?:(條件運算符)、+(字元串連接符)
2.各類運算符詳解
1.算術運算
算數運算符分一元運算符(一個操作數)和二元運算符(兩個操作數)
二元運算符:+(加法)、-(減法)、*(乘法)、/(除法)、%(取模/取餘)
如果整數進行運算:有一個操作數是long型,那麼結果就是long型。操作數沒有long,結果就是int,不管其中哪個操作數是byte還是short還是int
如果是浮點數進行運算:只要有一個是double型,結果就是double型。只有兩個操作數都是float型時,結果才是float型。
(關於類型轉換後面會單獨講,瞭解這兩個即可)
一元運算符:
a++和++a的區別:
++a是指a先自身加1,a的值變為a+1,再進行運算,輸出結果a+1,此時a的值是a+1。
a++是指先運算,輸出結果為a,a自身加1,a的值變為a+1,此時a的值是a+1
int a=3;
int b=++a;
此時輸出ab:a的值是4,b的值是4
int a=3;
int b=a++;
此時輸出ab:a的值是4,b的值是3
2.賦值運算符:
=(賦值)用法:講等號右邊的操作數賦值給左邊
例:a=b 講b的值賦給a,且b的值不變
+=(加等)、-=(減等)、*=(乘等)、/=(除等)、%=(模等/取餘等)用法類似
例:
a+=b 相當於 a=a+b、a-=b 相當於 a=a-b、a*=b 相當於 a=a*b。。。。
int a=3;int b=4;a=a+b;等價於int a=3;int b=4; a=a+b;
輸出結果a為7,b為4。
3.關係運算符:
所有的關係運算符輸出結果只有true/false
=(賦值)是賦值運算符、==(等於)才是判斷兩個操作數是否相等的運算符
==(等於)、!=(不等於)適用於所有數據結構
>(大於)、<(小於)、>=(大於等於)、<=(小於等於)僅適用於byte、short、int、long、float、double、char
(instanceof暫時不用瞭解)
4.邏輯運算符:
邏輯運算符是用來操作布爾型(true/false)的運算符
同時^(異或)、&(邏輯與)、|(邏輯或)這三個也是位運算符
&(邏輯與):兩個操作數同時為true,結果為true
|(邏輯或):兩個操作數有一個為true,結果為true
&&(短路與):只要有一個為false,結果為false
||(短路或):只要有一個為true,結果為true
^(異或):兩個操作數相同為false,不同為true
!(邏輯非):取反 例:!true的值為false
|(邏輯或)與||(短路或)區別:
“||”: 如果左邊計算後的操作數為true,右邊則不再執行,返回true;
“|”:前後兩個操作數都會進行計算。也就是說:“|”不存在短路。
&(邏輯與)與&&(短路與)區別同上
例:
boolean c=1>2&&2>(3/0);
System.out.println(c);//不報錯,不運行&&後面代碼
boolean d=1>2&2>(3/0);
System.out.println(d);//報錯,會運行&後面的代碼
5.位運算符:
位運算符是將操作數轉化位2進位後的操作(具體2進位有關內容自行學習)
&(按位與)、|(按位或)、^(按位異或)、~(取反):這四個運算符和邏輯運算符用法一致,只是將兩個十進位變成轉換為2進位後,每一位的邏輯運算後,再組成的新的二進位,最後轉換為十進位
>>(按位右移)、<<(按位左移):這兩個運算符,向左1位相當於操作數的乘2,向右1位相當於操作數除2取商
例:
int a=3*2*2;
int b=3<<2;
int c=12/2/2;
int d=12>>2;
a的值和b的值相等,c的值和d的值也相等
5.其他運算符:
+(字元串連接符):講兩個字元串來接起來,組成新的字元串
倆個操作數只要有一個是字元串類型,系統就會將另一個變成字元串再連接。
例:
System.out.println(3+4);//輸出7
System.out.println(3+"4");//輸出34
System.out.println(3+3+"4");//輸出64 (第一個為算術運算符的加法,第二個為字元串連接符)
?:(條件運算符):
格式:x?y:z
其中x為布爾型表達式,如果x的值為true輸出y的值,z的值為false輸出z的值
例:
int score1=40;
int score2=80;
String reslut1=score1>60?"及格":"不及格";
String reslut2=score2>60?"及格":"不及格";
System.out.println(reslut1);//輸出不及格
System.out.println(reslut2);//輸出及格