java運運算元

2020-10-14 11:00:30

算術運運算元:

package com.zhiyou100;

public class Demo01_Operator {
    public static void main(String[] args) {
        /*
            運運算元 程式中一種很特殊的符號 連執行緒式中需要參與運算的變數(前提條件是該變數有值)

            算術運運算元
                + - * / %   ++i i++ i自加1; --i i-- i自減1

            賦值運運算元   +=

            比較運運算元(關係運算子)  數位(整數,小數) 表示式(變數+運運算元)

            邏輯運運算元   與 &      或 |      非 !

            位運運算元

            三目運運算元   ?:
            語法格式:
                布林型別值 ? 該布林型別值是真的結果值 : 該布林型別值為假的結果值
            結果值要根據布林型別值表示式,當表示式為真,結果就是緊鄰問號 "?" 後面的結果值
            當表示式為真,結果就是緊鄰冒號 ":" 後面的結果值
         */

        // +    第一個作用:連線變數(變數的型別:基本+參照(String)) 通常情況下進行字串拼接
        String name = "張三";
        int age = 20;
        System.out.println(name+ age);
        // + 第二個作用:相加運算
        int a1 = 10;
        int b1 = 20;
        int c1 = a1+b1;
        System.out.println(c1);
        // + 第三個作用:正數>0
        int a2 = +10;
        int b2 = +a2;
        System.out.println(b2+ "   "+ a2);

        // - 第一個作用:相減運算
        int a3 = 20;
        int b3 = 10;
        int c3 = a3-b3;
        System.out.println(c3);
        // - 第二個作用:負數 <0
        int a4 = 20;
        int b4 = -20;
        int c4 = -a4;
        System.out.println(c4);

        // * 重量級    作用:乘法運算
        int a5 = 10;
        int b5 = 20;
        int c5 = a5*b5;
        System.out.println(c5);

        //  / 作用:除法運算
        int a6 = 13;
        int b6 = 5;
        int c6 = a6/b6;
        System.out.println(c6);

        //  % 作用:求餘數(取模)
        int a7 = 13;
        int b7 = 5;
        int c7 = 13%5;
        System.out.println(c7);
        //  / 正數 除以 負數
        System.out.println(a7 / (-b7));
        System.out.println(a7 % (-b7));
        //在除法運算中·,餘數的正負隨著被除數走,但是商的正負(只要除數和被除數其中有且僅有一個為負數即為負數),否則為正數

        //  ++ 自加1
        int number = 10;
        number += 5;
        System.out.println("number="+ number);
        int number2 = 10;
        number2++;
        System.out.println("number2="+ number2);

        int num3 = 10;
        int plus = 5;
        num3 += plus++;
        //如果變數在++運運算元左邊,那麼在運算過程中,先進行++運運算元左邊的運算,在執行++運算
        System.out.println(plus);// 6
        System.out.println(num3);// 15
        //變數在++運運算元的右邊
        int num4 = 10;
        int plus2 = 5;
        num4 += ++plus2;
        System.out.println("num4="+ num4);//16
        System.out.println("plus2="+ plus2);//6
        //如果變數在++運運算元的右邊,那麼在運算過程中,先進行++運算,再執行其他運算

        //  --  自減運算
        int num5 = 10;
        int reduction = 5;
        --num5;
        System.out.println(num5);

    }
}

賦值運運算元:

package com.zhiyou100;
//賦值運運算元
public class Demo02_Operator {
    public static void main(String[] args) {
        /*
            賦值運運算元:就是給變數賦值(初始化)
            =   等號代表的意思是把等號右邊的資料賦值給等號左邊的變數
            +=  相加賦值
            -=  相減賦值
            *=  相乘賦值
            /=  相除賦值
         */
        int a;
        a = 10;
        int a1 = 10;
        /*
            a1 = a1+10;//20
        等價於           a1 += 10;
        */
        //a1 += 10;
        a1 = a1+10;//20
        System.out.println("a1="+ a1);
        int b1 = a1+a1;

        //  -=    相減賦值
        int a2 = 10;
        //a2 = a2-5;
        a2 -= 5;
        System.out.println("a2="+ a2);

        //  *=    相乘賦值
        int a3 = 10;
        //a3 = a3*5;
        a3 *= 5;
        System.out.println("a3="+ a3);

        //  /=  相除賦值
        int a4 = 13;
        //a4 = a4/5;
        a4 /= 5;
        System.out.println("a4="+ a4);

        //  %=  取餘賦值
        int a5 = 13;
        //a5 = a5 % 5;
        a5 %= 5;
        System.out.println("a5="+ a5);

    }
}

比較運運算元:

package com.zhiyou100;

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

        /*
            比較運運算元
            >       <      ==       >=          <=       !=
            大於    小於    等於      大於等於    小於等於    不等於

            1.比較運運算元中的「 = 」是「 == 」,而不是「 = 」
            2.比較運運算元運算的結果就是布林型別值:true/false
         */
        int a = 20;
        int b = 10;
        System.out.println("a > b: "+ (a > b));//false
        System.out.println("a < b: "+ (a < b));//true
        System.out.println("a == b: "+ (a == b));//false
        System.out.println("a != b: "+ (a != b));//true
        System.out.println("a <= b: "+ (a <= b));//true
        System.out.println("a >= b: "+ (a >= b));//false
        //比較運運算元前後都是語句
        System.out.println("a++ > b--: "+ (a++ > b--));
    }
}

邏輯運運算元:

package com.zhiyou100;
//邏輯運運算元
public class Demo04_Operator {
    public static void main(String[] args) {
        /*
            邏輯運運算元:  與 &      或 |      非 !
            在程式中,運算的是布林型別值(可以是具體的true或者false,也可以是布林型別的表示式)
          結果依然是布林型別值。

         */
        boolean bool = true;
        boolean bool2 = false;
        boolean bool3 = bool & bool2;
        System.out.println(bool3);
        //說明:與運運算元 在程式運算過程中,只要有一個fals,結果就是false,否則為true

        //  或運算 |
        boolean var01 = false;
        boolean var02 = false;
        boolean var03 = var01 | var02;
        System.out.println(var03);
        //說明:或運算,在程式運算過程中,只要有一個為true,結果就為true,否則為false。

        //  非運算   !
        boolean var04 = false;
        boolean var05 = true;
        boolean var06 = !var04;//true
        //說明:非運算,在程式中運算中,一般只能連線一個布林型別值,而且非運運算元只能放在布林型別值的左邊
        //結果就是對連線的該布林型別值取相反結果

        //互斥或    ^   互斥或運運算元
        boolean var07 = false;
        boolean var08 = true;
        boolean result = var07 ^ var08;
        System.out.println(result);
        //說明:互斥或運運算元,在程式運算中,同為false,異為true
        //  如果互斥或運運算元連線的左右布林型別變數(表示式)的值不同,結果為true
        //  如果互斥或運運算元連線的左右布林型別變數(表示式)的值相同,結果為false
        //備註:如果和或運運算元做對比,不同之處:當左右都為true的時候,結果為false

        //拓展:與& &&      或| ||       非!      互斥或 ^
        boolean bool4 = true;
        boolean bool5 = false;
        boolean bool6 = bool4 && bool5;
        System.out.println(bool6);
        //在程式中,與運運算元,通常使用&&
        /*
            &與&&異同點:
                相同點:都是做與運算
                不同點:&&可以實現斷路
            備註:短路效果,當&&符號左邊的布林型別值可以確定為false的時候,那麼在執行到&&的時候,會發生跳躍,&&後面的表示式不執行
                或運運算元||效果等同與&&
          */
        boolean bool7 = true;
        boolean bool8 = false;
        boolean bool9 = bool4 || bool5;
        System.out.println(bool9);
        //當||符號左邊的布林型別值可以確定為true的時候,那麼在執行到||的時候,會發生跳躍,||後面的表示式不執行
    }

}

位運運算元:

package com.zhiyou100;

public class Demo05_Operator {
    public static void main(String[] args) {
        /*
            位運運算元    位
            位   bit 計算機中最小的資訊單位為bit(位)  一個bit上儲存的是0或者1
            計算機中最小的儲存單位是byte(位元組)    1byte=8bit
            二進位制的運算
            與位運算    &
            或位運算    |
            非位運算    ×
            互斥或位運算   ^
            移位位運算   >>右移    <<左移    >>>無符號右移動
         */
        //  與位運算    &
        int a = 13;
        int b = 5;
        int c = a & b;//5
        System.out.println(c);
        //  說明:在與位運算中,如果參與運算的二進位制值中有一個為0,那麼運算的結果即為0
        //  當前後運算的二進位制的長度不一致時,那麼程式會在短的那一方高位補0,短几位就補幾個0,保持長度一致

        //或位運運算元
        int a1 = 28;//                011100
        int b1 = 36;  //              100100
        int c1 = a1 | b1;  //         111100=60
        System.out.println(c1);

        //互斥或運運算元 同為0,異為1
        int a2 = 123;//                 01111011
        int b2 = 134;//                 10000110
        int c2 = a2 ^ b2;//             11111101
        System.out.println(c2);//253
    }
}

三目運運算元:

package com.zhiyou100;
//  三目運運算元   ?:
public class Demo06_Operator {
    public static void main(String[] args) {
        /*
            三目運運算元   ?:
            語法格式:
                布林型別值 ? 該布林型別值是真的結果值 : 該布林型別值為假的結果值
            結果值要根據布林型別值表示式,當表示式為真,結果就是緊鄰問號 "?" 後面的結果值
            當表示式為真,結果就是緊鄰冒號 ":" 後面的結果值
         */

        //第一種:直接在輸出語句使用
        int a = 10;
        int b = 20;
        System.out.println(a > b ? "a>b" : "a<b");
        System.out.println(a > b ? true : false);//true
        System.out.println(a <= b ? "a<=b" : false);
        System.out.println(a >= b ? a : b);//20

        //第二種用法:在語句中使用(不是輸出語句) 賦值運算中
        int c = a > b ? a : b;//20
        System.out.println(c);
        String d = a > b ? "是真的嗎?" : "你是假的";
        System.out.println(d);
        /*
            說明:如果三目運運算元是在輸出語句中,那麼對三目運運算元的結果值真假的資料型別不要求
                如果不在輸出語句中,在其他語句中,如賦值運算語句,那麼就要嚴格控制三目運運算元的結果值真假的資料型別
                真假的結果值型別要一致,保持和賦值運算中的變數的資料型別一致
         */
    }
}