Java編程基礎階段筆記 day03 Java基本語法(中)

day03 Java基本語法(中)

核心內容
擴展賦值運算符

邏輯或| 與短路||

邏輯與&與短路與&&

位運算符

交換變量的三種方法

if條件表達式注意點

三元運算符

擴展賦值運算符: +=, -=, *=, /=, %=

short s = 3;

s = s+2; ①//編譯不通過

s += 2; ②//編譯通過,且s=5

byte b = 10;

b = b + 2; //編譯不通過,因爲byte做運算會先將自身提升爲int

b += 2; //編譯沒問題 :不會改變原來的數據類型。

int i = 1;

i *= 0.1;

System.out.println(i);//0

i++;

System.out.println(i);//1

邏輯運算符

邏輯與(&)、短路與(&&)

邏輯或(|)、短路或(||)

邏輯非(!)

邏輯異或(^):兩個相同則爲false,不同爲true

邏輯運算結果只能爲 true 或 false

邏輯與 & 和 短路與 && 的區別是什麼:

左邊式子爲 true 時,右邊的式子會執行

左邊的式子爲false 時,&& 右邊的式子不執行

邏輯或 | 與 短路或 || 的區別是什麼:

左邊的式子爲false時,左右都執行

左邊的式子爲false時,|| 右邊的式子不執行

位運算符

<< (左移) :在一定範圍內,每向左移一位那麼原來的數乘以2

(右移) :在一定範圍內,每向右移一位原來的數除以2

(右移) :如果是正數最高位用0補,如果是負數最高位用1補。

(無符號右移) :無論正數還是負數,最高位都是用0補

    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);

交換兩個變量中的數據的三種方法

int n = 5, m = 10;

//方式一:必須會(優點:任何數據類型都可以交換。缺點:需要一個另時變量)

    /*

    int temp = m;

    m = n;

    n = temp;

    */

//方式二:(優點 :不需要再申請額外的變量 缺點:1.只能用於數值 2.有可能會超過表數範圍)

/*

    m = m + n;

    n = m - n; //(m + n) - n

    m = m - n; //(m + n) - n(m)

    */

//方式三:(優點 :1.不需要申請額外的變量 2.效率高 缺點:1.不容易理解 2.只能用於數值 )

    m = m ^ n;

    n = m ^ n; //(m ^ n) ^ n

    m = m ^ n; //(m ^ n) ^ n(m)

if條件表達式

如果多個條件表達式的範圍是互斥關係,那麼誰上誰下都可以。

如果多個條件表達式的範圍是包含關係,那麼範圍小的在上面,範圍大的在下面。

else可以省略。但是省略後可能會導致沒有任意一個條件是滿足的。

在if-else中如果執行語句只有一條,那麼大括號可以省略

else //就近原則-離哪個if最近就和誰是一對

if(true)

        if(false)

            System.out.println("cccc");

        else //就近原則-離哪個if最近就和誰是一對

            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 已經在路上了");

    }else{

        System.out.println("還想要東西,看我回去不打死你");

    }

    */

//下面的方式必須考慮範圍的大小。

    if(score == 100){

        System.out.println("嘿嘿 哈哈 嘻嘻 寶馬就停在門口");

    }else if(score > 80){

        System.out.println("恩 還可以 iphone xs max 已經在路上了");

    }else if(score >= 60){

        System.out.println("知道,知道 ipad明天給你買");

    }else{

        System.out.println("還想要東西,看我回去不打死你");

    }

三元運算符

格式:(條件表達式)?表達式1 :表達式2;

說明:

①條件表達式的結果只能爲布爾類型

②表達式1和表達式2的類型應該保持一致

如果表達式1和表達式2可以自動類型提升成一樣的類型那麼也可以。

例 :double max = (m > n)? 10.2 : 5;

③三元運算符可以被if-else所替換,反之不成立。兩者都可以使用的情況下,我們優先選擇三元運算符。因爲三元運算符效率會快一些。

總結Summary

邏輯與 & 和 短路與 && 的區別
邏輯或 | 和 短路或 || 的區別
實現兩個數交換的三種方法
if 語句的注意點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章