加:“+”, 減:“-”, 乘:“*”, 除:“/”, 取余,取模:“%”
注意:整數(shù)操作只能得到整數(shù),要想得到小數(shù),必須有浮點數(shù)參與運(yùn)輸
類型轉(zhuǎn)換分為:
1.隱式轉(zhuǎn)換: 取值范圍小的的數(shù)值轉(zhuǎn)換為取值范圍大的數(shù)值
2.強(qiáng)制轉(zhuǎn)換: 取值范圍大的的數(shù)值轉(zhuǎn)換為取值范圍小的數(shù)值
范圍大小:double >float >long >int >short >byte
隱式轉(zhuǎn)換1.取值范圍小的,和取值范圍大的進(jìn)行運(yùn)算,小的會先提升為大的,再進(jìn)行運(yùn)算
2.byte short char三種類型的數(shù)據(jù)在運(yùn)算的時候,都會直接先提升為int,然后再進(jìn)行運(yùn)算
例:
byte a = 10;
byte b = 20;
c = a + b;
a和b先轉(zhuǎn)換成int類型再相加
如果把一個取值范圍大的的數(shù)值,賦值給取值范圍小的變量,不允許直接賦值,必須強(qiáng)制轉(zhuǎn)換
格式:目標(biāo)數(shù)據(jù)類型 變量名 = (目標(biāo)數(shù)據(jù)類型) 被強(qiáng)轉(zhuǎn)的數(shù)據(jù)
double a = 12.3;
int b = (int) a;
注意:如果數(shù)據(jù)比較大,可能會發(fā)生錯誤
public class ArithmeticoperatorDemo1 {public static void main(String[] args) {byte a = 10;
byte b = 20;
//強(qiáng)轉(zhuǎn)將 int 轉(zhuǎn)化為 byte 類型
byte result = (byte)(a + b);
System.out.println(result);
byte c = 100;
byte d = 100;
//數(shù)值過大強(qiáng)轉(zhuǎn)會出現(xiàn)錯誤
byte result1 = (byte)(c + d);
System.out.println(result1);
}
}
輸出為
30
-56 (顯然不對)
1 + 1 = 2;
字符串相加當(dāng) “+” 操作中出現(xiàn)字符串時,這個 “+” 是字符串連接符,而不是算數(shù)運(yùn)算符,會將前后的數(shù)據(jù)進(jìn)行拼接,并產(chǎn)生一個新的字符串
“123” + 123 = “123123”
連續(xù)進(jìn)行 “+” 操作的時候,從左到右依次執(zhí)行
1 + 1313 + “我愛你” = “1314我愛你”
// 1+1313=1314先執(zhí)行,再執(zhí)行1314+“我愛你”
1 + 2 + “abc” + 2 + 1 = “3abc21”
“abc” + true = “abctrue”
字符相加當(dāng)出現(xiàn)下面兩種情況時:
1.字符+字符 ‘a(chǎn)’ + ‘b’
2.字符+數(shù)字 ‘a(chǎn)’ + 1
會把字符通過ASCII碼表查詢到對應(yīng)的數(shù)字再進(jìn)行計算
public class ArithmeticoperatorDemo2 {public static void main(String[] args) {char c = 'a';
int result = c + 0;
System.out.println(result);
}
}
輸出為:
97
正好對應(yīng)ASCII碼
1.自增運(yùn)算符:
“++” : 變量的值加1
a++和++a
2.自減運(yùn)算符:
“–” : 變量的值減1
a–和–a
單獨寫一行,++和–無論放在變量的前面還是后面結(jié)果都是一樣的
參與計算: a++, a–先用后加
int a = 10;
int b = a++;
先令b=a=10, 然后再讓a=a+1, a=11
a–同理
先加后用
int a = 10;
int b = ++a;
先讓a=a+1, a=11, 再令b=a=11
–a同理
把下面這段代碼搞清楚就能理解了
public class ArithmeticoperatorDemo4 {public static void main(String[] args) {int x = 10;
int y = x++;
int z = ++x;
System.out.println("x:" + x);
System.out.println("y:" + y);
System.out.println("z:" + z);
}
}
最終結(jié)果:
x:12
y:10
z:12
符號 | 含義 |
---|---|
= | a=10,將10賦值給變量a |
+= | a+=b,將a+b的值給a |
-= | a-=b,將a-b的值給a |
*= | a*=b,將axb的值給a |
/= | a/=b,將a÷b的商給a |
%= | a%=b,將a÷b的余數(shù)給a |
注意: +=, -=, /=, *=, %= 底層都隱藏了一個強(qiáng)制類型轉(zhuǎn)換,舉例如下:
short s = 1;
s += 1;
//等同于s = (short) (s + 1); 因為s+1的時候s強(qiáng)制轉(zhuǎn)換為了int類型,但s本身是short類型,所以等式左邊要強(qiáng)制轉(zhuǎn)換為short類型
System.out.println(s);
符號 | 含義 |
---|---|
== | a==b,判斷a和b的值是否相等 |
!= | a!=b,判斷a和b的值是否不相等 |
> | a>b,判斷a是否大于b |
>= | a>=b,判斷a是否大于等于b |
< | a |
<= | a<=b,判斷a是否小于等于b |
上述返回的結(jié)果都是boolean類型成立為true,不成立為false
邏輯運(yùn)算符符號 | 含義 |
---|---|
& | 邏輯與(且) 并且,兩邊都為真,結(jié)果才是真 |
^ | 邏輯異或 相同為false,不同為true |
! | 邏輯非 取反 |
| | 或者,兩邊都為假,結(jié)果才是假 |
符號 | 含義 |
---|---|
&& | 短路與 結(jié)果和&相同,但是有短路效果 |
|| | 短路或 結(jié)果和|相同,但是有短路效果 |
短路效果:當(dāng)左邊的表達(dá)式能確定最終結(jié)果,那么右邊就不會參與運(yùn)行了
& , | : 無論左邊true還是false,右邊都要執(zhí)行
&& , || : 如果左邊能確定整個表達(dá)式的結(jié)果,右邊不執(zhí)行
&& : 左邊為false,右邊不管是真是假,整個表達(dá)式的結(jié)果一定是false。
|| : 左邊為true,右邊不管是真是假,整個表達(dá)式的結(jié)果一定是true。
這兩種情況下,右邊不執(zhí)行,提高了代碼運(yùn)行效率
public class LogicoperatorDemo2 {public static void main(String[] args) {int a = 10;
int b = 10;
boolean result = ++a< 5 && ++b< 5;
System.out.println(result);
System.out.println(a);
System.out.println(b);
//當(dāng)++a< 5 為false之后,不會執(zhí)行后面的 ++b< 5,所以b=10
int c = 10;
int d = 10;
boolean result1 = ++c< 5 & ++d< 5;
System.out.println(result1);
System.out.println(c);
System.out.println(d);
//當(dāng)++c< 5 為false之后,會執(zhí)行后面的 ++d< 5,所以b=11
}
}
輸出結(jié)果
false
11
10
false
11
11
格式: 關(guān)系表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2;
關(guān)系表達(dá)式為true執(zhí)行表達(dá)式1, 為false執(zhí)行表達(dá)式2
一定要接受運(yùn)算符的值
例:求兩個數(shù)的較大值
a >b ? a : b;
取大值
代碼實現(xiàn):輸入兩個整數(shù), 輸出大值
import java.util.Scanner;
public class TernaryoperatorDemo1 {public static void main(String[] args) {//使用三元運(yùn)算符, 獲取兩個數(shù)的較大值
Scanner sc = new Scanner(System.in);
System.out.println("請輸入第一個整數(shù)");
int a = sc.nextInt();
System.out.println("請輸入第二個整數(shù)");
int b = sc.nextInt();
int max = a >b ? a : b;
System.out.println(max);
sc.close();
}
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站名稱:Java中的運(yùn)算符基礎(chǔ)和高級-創(chuàng)新互聯(lián)
標(biāo)題URL:http://vcdvsql.cn/article32/dgoipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、動態(tài)網(wǎng)站、網(wǎng)站收錄、網(wǎng)站維護(hù)、微信公眾號、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容