1. 程式人生 > >Java復習(3)運算符和表達式

Java復習(3)運算符和表達式

強制轉換 優先級 stc lse 算術 運算符 false 才有 之間

運算符主要是指進行特定操作的符號。如:+。
表達式是指用運算符連接起來的式子叫做表達式。如:20+5,a+b。
Java世界中運算符主要分為以下幾類:算術運算符、賦值運算符、比較運算符、邏輯運算符和三元運算符。
一、 算術運算符
加(+):四則運算的加法
減(-):四則運算的劍法
乘(*):四則運算的乘法
除(/):四則運算的除法
取模(%):常說的求余數
註意事項:

  1. 一旦運算當中有不同類型的數據,那麽結果將會是數據類型範圍大的那種。
  2. 只有對於整數的除法來說,取模運算才有余數的意義。
  3. 在進行運算時,首先計算得到表達式的結果,然後在進行後續操作。
  4. 四則運算的加號對於char類型來說,在計算之前,char類型會被提升為int類型,然後在進行計算。
  5. 對於字符串String類型來說,加號代表字符串連接操作。並且任何數據類型和字符串進行連接操作,結果都會變成字符串。
    可以看一下代碼示例:

    public class TestOperator {
    public static void main(String[] args){
        //兩個常量之間的數學運算
        System.out.println(20+30);
        //兩個變量之間的數學運算
        int a = 20;
        int b = 5;
        System.out.println(a-b);
        //並且變量和常量之間可以混合使用
        System.out.println(a*10);
    
        int x = 10;
        int y = 3;
        //因為x和y都是整數,除數的結果也是整數。所以結果會進行截斷。
        int result1 = x/y;
        System.out.println(result1);
    
        int result2 = x%y;
        System.out.println(result2);
        //浮點數也可以進行運算
        double result3 = x + 2.5;
        System.out.println(result3);
    }
    }

    算術運算符還有兩種特殊的運算符,就是自增運算符(++)、自減運算符(--)。
    基本含義:
    自增運算符讓變量的值增加1,自減運算符是讓變量的值減1。
    使用格式:
    寫在變量名稱前,或者寫在變量名稱之後。如:++num或num++。
    使用方式:

  6. 單獨使用:不和其他任何操作混合,自己獨立稱為一個步驟。
  7. 混合使用: 和其他操作混合,例如與賦值混合,或者與打印操作混合等。
    兩種使用方式區別:
  8. 在單獨使用的時候,前++和後++沒有任何區別。也就是說++num和num++結果是完全一樣的。
  9. 在混合使用的時候,有重大區別:
    A. 如果是前++,那麽變量馬上加1,然後拿著結果進行使用。可以稱作,先加後用。

    B. 如果是後++,那麽首先使用變量本來的數值,然後在讓變量加1,可以稱作,先用後加。
    註意事項:
    只有變量才能使用自增、自減運算符,常量不可用。
    請看以下示例:

    public class TestPlus {
    public static void main(String[] args) {
        //字符串類型的變量基本使用
        //數據類型 變量名稱 = 數據值;
        String str1 = "Hello";
        System.out.println(str1);
        System.out.println("Hello" + "World");
    
        String str2 = "Java";
        System.out.println(str2 + 20);
    
        //優先級問題
        System.out.println(str2 + 20 + 30);
    
        //自增自減
        int num1 = 10;
        System.out.println(num1);
        ++num1;//單獨使用,前++
        System.out.println(num1);
        num1++;//單獨使用,後++
        System.out.println(num1);
    
        int num2 = 20;
        //混合使用,前++,變量馬上變為21,然後打印輸出
        System.out.println(++num2);
        System.out.println(num2);
    
        int num3 = 30;
        //混合使用,後++,先使用變量原值30,打印輸出,然後變量加1,變為31.
        System.out.println(num3++);
        System.out.println(num3);
    
        int num4 = 40;
        //混合使用,前--,變量馬上變為39,然後賦值result1
        int result1 = --num4;
        System.out.println(result1);
        System.out.println(num4);
    
        int num5 =50;
        //混合使用,後--,先使用變量原值50,賦值result2,然後變量減1,變為49.
        int result2 = num5--;
        System.out.println(result2);
        System.out.println(num5);
    
        int x = 10;
        int y = 20;
        int result3 = ++x + y--;
        System.out.println(result3);
        System.out.println(x);
        System.out.println(y);
    }
    }

    二、 賦值運算符
    賦值運算符分為兩種:
    一是基本賦值運算符:就是一個等號“=”,代表將右側的數據交給左側的變量。
    二是復合賦值運算符:
    +=: 例如 a += 1 相當於 a = a + 1
    -=: 例如 b -= 4 相當於 b = b - 4
    =: 例如 c = 5 相當於 c = c * 5
    /=: 例如 d /= 6 相當於 d = d / 6
    %=: 例如 e %= 7 相當於 e = e % 7
    註意事項:

  10. 只有變量才能使用賦值運算符,常量不能進行賦值。
  11. 復合賦值運算符其中隱含了一個強制類型轉換。
    請看示例:

    public class TestEqual{
    public static void main(String[] args) {
        int a = 10;
        a += 5;
        System.out.println(a);
    
        int x = 10;
        x %= 3;
        System.out.println(x);
    
        byte num = 30;
        //num += 5 相當於 num = num +5;
        //也就是byte = byte + int;
        //右邊表達式會先把byte自動轉換稱為int,最後進行強制轉換成byte.
        //所以復合賦值運算符幫我們做了一個強制類型轉換
        num += 5;
        System.out.println(num);
    }
    }

    三、 比較運算符
    == 比較符號兩邊數據是否相等,相等結果就是true。
    < 比較符號左邊的數據是否小於右邊的數據,如果小於,結果就是true。

    比較符號左邊的數據是否大於右邊的數據,如果大於,結果就是true。
    <= 比較符號左邊的數據是否小於等於右邊的數據,如果小於等於,結果就是true
    = 比較符號左邊的數據是否大於等於右邊的數據,如果大於等於,結果就是true。
    != 比較符號兩邊數據是否相等,不相等結果就是true。

註意事項:

  1. 比較運算符的結果一定是一個boolean值,成立就是true,不成立就是false。
  2. 如果進行多次判斷,不能連著寫。
    public class TestCompare {
    public static void main(String[] args) {
        System.out.println(10>5);
        iint num1 = 10;
        int num2 = 15;
        System.out.println(num1 < num2);
        System.out.println(num1 >= 30);
        System.out.println(num2 <= 50);
        System.out.println(num2 <= 15);
        System.out.println(num2 == 15);
        System.out.println(num1 != 15);
        //java不支持連著進行比較,可以使用下節的邏輯比較符進行。
        //System.out.println(4 < num1 < 20);
    }
    }

    四、 邏輯運算符
    與 && 全都是true,才是true; 否則就是false
    或 || 至少一個是true, 就是true; 全都是false,才是false
    非 ! 本來是true,變成false;本來是false,變成true。

註意事項:

  1. 邏輯運算符只能用於Boolean值。
  2. 與、或需要左右各自有一個Boolean值,但是取反只要有唯一的一個Boolean值即可。
  3. 與、或兩種運算符,如果有多個條件,可以連續寫。
  4. 與、或具有短路效果:如果根據左邊已經可以判斷得到最終結果,那麽右邊的代碼將不再執行,從而節省性能。
    五、 三元運算符
    Java中根據數據的多少可以分為:
    一元運算符: 只需要一個數據就可以進行操作的運算符。例如:取反!、自增++、自減--
    二元運算符: 需要兩個數據才可以進行操作的運算符。例如:加減乘除
    三元運算符: 需要三個數據才可以進行操作的運算符。

格式: 數據類型 變量名稱 = 條件判斷 ? 表達式A : 表達式B
流程:
首先判斷條件是否成立:
如果成立為true,那麽將表達式A的值賦給左側的變量
如果不成立為false,那麽將表達式B的值賦給左側的變量

註意事項:

  1. 必須同時保證表達式A和表達式B都符合左側數據類型的要求。
  2. 三元運算符的結果必須被使用。

    public class TestThreeVar {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max;
        //判斷a>b是否成立,如果成立將a的值賦給max,如果不成立將b的值賦給max.
        max = a > b ? a : b;
        System.out.println(max);
    
        //兩個表達式的值必須同時符合左側數據類型的要求。
        //int result = 3 > 4 ? 2.4 : true;
    
        //並且三元表達式不能直接使用
        //a > b ? a : b 
    }
    }

Java復習(3)運算符和表達式