您好,登錄后才能下訂單哦!
?
day03 Java基本語(yǔ)法(中)
核心內(nèi)容
擴(kuò)展賦值運(yùn)算符
邏輯或| 與短路||
邏輯與&與短路與&&
位運(yùn)算符
交換變量的三種方法
if條件表達(dá)式注意點(diǎn)
三元運(yùn)算符
擴(kuò)展賦值運(yùn)算符: +=, -=, *=, /=, %=
short s = 3;
s = s+2; ①//編譯不通過(guò)
s += 2; ②//編譯通過(guò),且s=5
byte b = 10;
b = b + 2; //編譯不通過(guò),因?yàn)閎yte做運(yùn)算會(huì)先將自身提升為int
b += 2; //編譯沒(méi)問(wèn)題 :不會(huì)改變?cè)瓉?lái)的數(shù)據(jù)類(lèi)型。
int i = 1;
i *= 0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1
邏輯運(yùn)算符
邏輯與(&)、短路與(&&)
邏輯或(|)、短路或(||)
邏輯非(!)
邏輯異或(^):兩個(gè)相同則為false,不同為true
邏輯運(yùn)算結(jié)果只能為 true 或 false
邏輯與 & 和 短路與 && 的區(qū)別是什么:
左邊式子為 true 時(shí),右邊的式子會(huì)執(zhí)行
左邊的式子為false 時(shí),&& 右邊的式子不執(zhí)行
邏輯或 | 與 短路或 || 的區(qū)別是什么:
左邊的式子為false時(shí),左右都執(zhí)行
左邊的式子為false時(shí),|| 右邊的式子不執(zhí)行
位運(yùn)算符
<< (左移) :在一定范圍內(nèi),每向左移一位那么原來(lái)的數(shù)乘以2
(右移) :在一定范圍內(nèi),每向右移一位原來(lái)的數(shù)除以2
(右移) :如果是正數(shù)最高位用0補(bǔ),如果是負(fù)數(shù)最高位用1補(bǔ)。
(無(wú)符號(hào)右移) :無(wú)論正數(shù)還是負(fù)數(shù),最高位都是用0補(bǔ)
System.out.println(3 << 1);//6
System.out.println(3 << 2);//12
System.out.println(3 << 3);//24
System.out.println(1 << 31);
System.out.println(6 >> 1);
System.out.println(3 >> 1);
System.out.println(-3 >> 1);
System.out.println(6 >>> 1);
System.out.println(-6 >>> 1);
交換兩個(gè)變量中的數(shù)據(jù)的三種方法
int n = 5, m = 10;
//方式一:必須會(huì)(優(yōu)點(diǎn):任何數(shù)據(jù)類(lèi)型都可以交換。缺點(diǎn):需要一個(gè)另時(shí)變量)
/*
int temp = m;
m = n;
n = temp;
*/
//方式二:(優(yōu)點(diǎn) :不需要再申請(qǐng)額外的變量 缺點(diǎn):1.只能用于數(shù)值 2.有可能會(huì)超過(guò)表數(shù)范圍)
/*
m = m + n;
n = m - n; //(m + n) - n
m = m - n; //(m + n) - n(m)
*/
//方式三:(優(yōu)點(diǎn) :1.不需要申請(qǐng)額外的變量 2.效率高 缺點(diǎn):1.不容易理解 2.只能用于數(shù)值 )
m = m ^ n;
n = m ^ n; //(m ^ n) ^ n
m = m ^ n; //(m ^ n) ^ n(m)
if條件表達(dá)式
如果多個(gè)條件表達(dá)式的范圍是互斥關(guān)系,那么誰(shuí)上誰(shuí)下都可以。
如果多個(gè)條件表達(dá)式的范圍是包含關(guān)系,那么范圍小的在上面,范圍大的在下面。
else可以省略。但是省略后可能會(huì)導(dǎo)致沒(méi)有任意一個(gè)條件是滿(mǎn)足的。
在if-else中如果執(zhí)行語(yǔ)句只有一條,那么大括號(hào)可以省略
else //就近原則-離哪個(gè)if最近就和誰(shuí)是一對(duì)
if(true)
if(false)
System.out.println("cccc");
else //就近原則-離哪個(gè)if最近就和誰(shuí)是一對(duì)
System.out.println("ddddddd");
/*
if(score == 100){
System.out.println("嘿嘿 哈哈 嘻嘻 寶馬就停在門(mén)口");
}else if(score >= 60 && score <= 80){
System.out.println("知道,知道 ipad明天給你買(mǎi)");
}else if(score > 80 && score <= 99){
System.out.println("恩 還可以 iphone xs max 已經(jīng)在路上了");
}else{
System.out.println("還想要東西,看我回去不打死你");
}
*/
//下面的方式必須考慮范圍的大小。
if(score == 100){
System.out.println("嘿嘿 哈哈 嘻嘻 寶馬就停在門(mén)口");
}else if(score > 80){
System.out.println("恩 還可以 iphone xs max 已經(jīng)在路上了");
}else if(score >= 60){
System.out.println("知道,知道 ipad明天給你買(mǎi)");
}else{
System.out.println("還想要東西,看我回去不打死你");
}
三元運(yùn)算符
格式:(條件表達(dá)式)?表達(dá)式1 :表達(dá)式2;
說(shuō)明:
①條件表達(dá)式的結(jié)果只能為布爾類(lèi)型
②表達(dá)式1和表達(dá)式2的類(lèi)型應(yīng)該保持一致
如果表達(dá)式1和表達(dá)式2可以自動(dòng)類(lèi)型提升成一樣的類(lèi)型那么也可以。
例 :double max = (m > n)? 10.2 : 5;
③三元運(yùn)算符可以被if-else所替換,反之不成立。兩者都可以使用的情況下,我們優(yōu)先選擇三元運(yùn)算符。因?yàn)槿\(yùn)算符效率會(huì)快一些。
總結(jié)Summary
邏輯與 & 和 短路與 && 的區(qū)別
邏輯或 | 和 短路或 || 的區(qū)別
實(shí)現(xiàn)兩個(gè)數(shù)交換的三種方法
if 語(yǔ)句的注意點(diǎn)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。