1. 程式人生 > 其它 >Java基礎語法—運算子

Java基礎語法—運算子

算術運算子+,-,*,/,%,++,--

package opretor;

public class Demo01 {
    public static void main(String[] args) {
        //二元運算子
        //ctrl + D 複製當前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;

        System.out.println(a+b);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(b/a);//2
        System.out.println(c%a);//5
        System.out.println(a/b);//0
        System.out.println(a/(double)b);//0.5
        
    }
}

運算中有long型別,則結果為long型別,否則結果為int;同理,運算中有double型別,則結果為double型別,否則結果為float

public class Demo02 {
    public static void main(String[] args) {
        long a = 1237867823641L;
        int b = 123;
        short c = 10;
        byte d = 8;

        System.out.println(a+b+c+d); //long
        System.out.println(b+c+d); //int
        System.out.println(c+d); //int

        double e = 0.0001;
        float f = 0.1F;
        float g = 0.2F;

        System.out.println(e+f);//double
        System.out.println(g+f);//float
    }
}

++ -- 自增,自減,一元運算子

int b = i++; 執行完這段程式碼後,先給b賦值,再自增

int b = ++i; 執行完這段程式碼後,先自增,再給b賦值

public class Demo04 {
    public static void main(String[] args) {
        //++ -- 自增,自減,一元運算子
        int a = 1;
        int b = 6;

        System.out.println(a);//1
        System.out.println(a++);//1
        System.out.println(a);//2
        System.out.println(++a);//3
        System.out.println(a);//3

        System.out.println("=====================");

        System.out.println(b);//6
        System.out.println(b---5);//1
        System.out.println(b);//5
        System.out.println(--b+1);//5

        //冪運算  2^3  2*2*2 = 8
        //很多運算,我們會使用一些工具類來操作
        double pow = Math.pow(2, 3);
        System.out.println(pow);
    }
}

賦值運算子=

關係運算符>,<,>=,<=,==,!=,instanceof

關係運算符返回的結果:正確 錯誤 布林值

public class Demo03 {
    public static void main(String[] args) {
        //關係運算符返回的結果:正確 錯誤  布林值
        int a = 10;
        int b = 20;

        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
    }
}

邏輯運算子 &&,||,!

邏輯與運算(&&):兩個變數都為真,結果才為true

邏輯或運算(||):兩個變數有一個為真,結果為true

邏輯非運算(!):如果為真,則為false,如果為假,則為true

//邏輯運算子
public class Demo05 {
    public static void main(String[] args) {
        // 與(and) 或(or)  非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println("a&&b:"+(a&&b));//a&&b:false
        System.out.println("a||b:"+(a||b));//a||b:true
        System.out.println("!(a&&b):"+!(a&&b));//!(a&&b):true

        //短路運算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        
        System.out.println(d);//false
        System.out.println(c);//5 說明沒執行c++
    }
}

位運算子 &,|,^(取反),~,>>(右移),<<(左移),>>>

*重要知識點:<< 即為 2;>> 即為 /2

public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101

        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001   相同為0,不同為1
        ~B = 1111 0010

        面試題:2*8怎麼算最快

        0000 0000      0
        0000 0001      1
        0000 0010      2
        0000 0011      3
        0000 0100      4
        0000 1000      8
        0001 0000      16

        2*8 = 16
        << *2
        >> /2
        2*2*2*2 = 2<<3


         */
        System.out.println(2<<3);//16
        System.out.println(7<<2);//28
    }
}

條件運算子 ? :

public class Demo08 {
    public static void main(String[] args) {
        //三元運算子
        // x ? y : z   如果x==true,則結果為y,否則結果為z

        int score = 80;
        String type = score <60 ? "不及格" : "及格";

        System.out.println(type);//及格
    }
}

擴充套件運算子 +=,-=,*=,/=

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b;//a = a+b

        System.out.println(a);//30

        a-=b;//a = a-b

        System.out.println(a);//10

        //字串連線符   +運算子兩側,只要有一方出現String,會把另一側都轉換成String,再進行聯結。
        System.out.println(a+b);
        System.out.println(""+a+b);//1020
        System.out.println(a+b+"");//30
        System.out.println(a+b+""+a+b);//301020

        //小結:如果""在前邊,則後邊不進行運算;如果""在後邊,則先運算,再連線。
    }
}

擴充套件

運算子優先順序 ()最優先,最好就是把想先執行的放在()裡