1. 程式人生 > 其它 >java基礎07:運算子

java基礎07:運算子

目錄

運算子

Java 雲煙支援如下運算子:

算學運算子:+、-、*、/、%、++、--

賦值運算子:=

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

邏輯運算子:與&&,或||,非!

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

條件運算子? :

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

算學運算子:+、-、*、/、%、

package operator;

public class Demo01 {
    public static void main(String[] args) {
        //二元運算子
        //Ctrl+D:複製當前行到下一行
        int a =10;
        int b =20;
        int c =25;
        int d =25;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);//0.5  因為a與b都為int型,所以先將b轉換為double執行
         //取餘,也叫模運算
        System.out.println(c%a);//c / a    25 / 10 = 2 ... 5
    }
}

算學運算子:+、-、*、/、不同型別的運算

package operator;

public class Demo02 {
    public static void main(String[] args) {
        long a = 1212312L;
        int b = 231;
        short c= 10;
        byte d= 8;
        System.out.println(a+b+c+d);//long  只要數值裡有long,最終型式就為long型別
        System.out.println(b+c+d);//int    其他數值結果都為int
        System.out.println(c+d);//int
        System.out.println(a+b+d);//long
    }
}

算學運算子:++、--

package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++  --    自增,自減   一元運算子
        int a = 3;
        int b = a++;//  執行完這行程式碼後,先給b賦值,在自增   b=a++等價於b=a;a=a+1;
        //a++  a = a + 1;
        int c = ++a;//執行完這行程式碼前,先給自增,在c賦值  c=++a等價於  a=a+1;c=a;
        //++a  a = a + 1;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        //冪運算  2^3     2*2*2 = 8   很多運算,我們會使用一些工具類操作!

        double pow = Math.pow(2, 3);//Ctrl+Alt+V  反射運算值    8.0
        System.out.println(pow);
    }
}

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

package operator;

public class Demo03 {
    public static void main(String[] args) {
        //關係運算符返回的結果:正確,錯誤    布林值
        // if

        int a = 10;
        int b = 20;
        int c = 21;
       
        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
    }
}

邏輯運算子:與&&,或||,非!

package operator;

public class Demo05 {
    public static void main(String[] args) {
        //與(and)  或 (or) 非(取反)
        boolean a = true;
        boolean 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)));//如果是真,則變為假,如果是假,則變為真

        //短路運算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);//false
        System.out.println(c);//5   (c<4)&&(c++<4);中的(c<4)為假,執行在(c++<4)前就已經終止了,所以C返回的資料為5.
                             // 如果繼續執行的話c = c + 1; c=c;最終C就是6了。

    }
}

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

package operator;
//位運算:
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        -------------------------------
        A&B = 0000 1100                   //與:如果對應位兩個都為1,則為1,否則就為0
        A|B = 0011 1101                   //或:如果對應位兩個都為0,則為0,否則就為1
        A^B = 0011 0001                   //取反:如果對應位兩個相同為0,兩個不相同就為1
        ~B = 1111 0010                    //取反:與對應位完全相反

        2*8 = 16   2*2*2*2
        效率極高!!!!!
        <<   *2   左移
        >>   /2   右移
        0000 0000    0
        0000 0001    1
        0000 0010    2
        0000 0011    3
        0000 0100    4
        0000 1000    8
        0001 0000    16
        0000 0000    0



         */


    }
}