?
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、包頭網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為包頭等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
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ù)類型。
int i = 1;
i *= 0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1
邏輯運(yùn)算符
邏輯與(&)、短路與(&&)
邏輯或(|)、短路或(||)
邏輯非(?。?/p>
邏輯異或(^):兩個(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ù)類型都可以交換。缺點(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è)條件是滿足的。
在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("嘿嘿 哈哈 嘻嘻 寶馬就停在門口");
}else if(score >= 60 && score <= 80){
System.out.println("知道,知道 ipad明天給你買");
}else if(score > 80 && score <= 99){
System.out.println("恩 還可以 iphone xs max 已經(jīng)在路上了");
}else{
System.out.println("還想要東西,看我回去不打死你");
}
*/
//下面的方式必須考慮范圍的大小。
if(score == 100){
System.out.println("嘿嘿 哈哈 嘻嘻 寶馬就停在門口");
}else if(score > 80){
System.out.println("恩 還可以 iphone xs max 已經(jīng)在路上了");
}else if(score >= 60){
System.out.println("知道,知道 ipad明天給你買");
}else{
System.out.println("還想要東西,看我回去不打死你");
}
三元運(yùn)算符
格式:(條件表達(dá)式)?表達(dá)式1 :表達(dá)式2;
說(shuō)明:
①條件表達(dá)式的結(jié)果只能為布爾類型
②表達(dá)式1和表達(dá)式2的類型應(yīng)該保持一致
如果表達(dá)式1和表達(dá)式2可以自動(dòng)類型提升成一樣的類型那么也可以。
例 :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)