Java 運算符 Part03 賦值類運算符

/*
運算符【剩下的運算符】
    * 賦值運算符
    * 字符串連接運算符
    * 三目運算符/三元運算符/條件運算符

    關(guān)于java中的賦值類運算符
        * 基本的賦值運算符
            =

        * 拓展的賦值運算符
            +=
            -=
            /=
            *=
            %=

    1、賦值類運算符優(yōu)先級:先執(zhí)行等號右邊的表達式,再將結(jié)果賦值給左邊的變量

    2、注意以下代碼:

        byte i = 5;
        i += 5; // 等同于 i = (byte)(i + 5);

        int j = 6;
        j += 6; // 等同于 j = (int)(j + 6);

        long x = 10L;
        int y = 20;
        y += x; //等同于 y = (int)(x + y);

    3、拓展類賦值運算符不改變運算結(jié)果的類型,無論怎么追加或追減都會是原先聲明的類型。



*/

public class OperatorTest03{
    public static void main(String[] args){

        //基本的賦值運算符
        int i = 10;
        System.out.println(i);//10
        i = i + 5;
        System.out.println(i);//15

        //擴展的賦值運算符

        i += 5;//等同于:i = i+5;【+= 運算符可以翻譯為“追加/累加”】
        System.out.println(i);

        i -= 5;//等同于:i = i - 5;
        System.out.println(i);//15

        i *= 2;//等同于:i = i * 2;
        System.out.println(i);//30

        i /= 4;//等同于: i = i / 4;
        System.out.println(i);//7

        i %= 2;//等同于:i = i % 2;
        System.out.println(i);//1

        //-----------------------------------------

        //10沒有超出byte取值范圍,可以直接賦值
        byte b = 10;

        //編譯報錯,為什么?
        //編譯器只檢查語法,不運行程序,編譯器發(fā)現(xiàn)b+5是int類型,b變量是byte
        //大容量轉(zhuǎn)小容量需要加強制類型轉(zhuǎn)換符,所以以下程序報錯
        //b = b + 5;
        
        //糾正錯誤
        b = (byte)(b + 5);
        System.out.println(b);

        //編譯通過
        byte x = 10;
        x += 5;//等同于x = (byte)(x + 5),其實并不等同于 x = x + 5;
        System.out.println(x);

        byte z = 0;
        z += 128; //等同于 z = (byte)(z + 128);
        System.out.println(z);//-128【損失精度】
    } 
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容