算術運算符++和--的用法


算術運算符++和--的用法

1.運算符

  概念:對常量和變量進行操作的符號。備注:(運算之后是有結果的)

  分類:

    算術運算符,

    賦值運算符

    比較(關系或條件)運算符,

    邏輯運算符

    位運算符

    三目(元)運算符

 

2.++,--運算符的作用

  ++:自加:對原有的數據進行+1

  --:自減:對原有的數據進行-1

3.使用:

  單獨使用:放在操作數的前面和后面效果一樣。

  參與運算使用:  ++在變量后面(i++),會先將變量中的值取出做賦值操作,再自身+1  

          ++在變量前面(++i),會先自身+1,然后再將+1后的結果賦值

4.舉例說明:

  例1.請分別計算出x,y的值?

    int x = 3;

    int y = x++ + ++x + x * 10;

  計算過程:

    在進行混合運算時我們看式子,從左往右看

    首先x++,++在變量x的后面,要先把變量x的值拿出來放在這個位置上(即 int y = 3 + ++x + x * 10),然后自身+1;這里變量x = 3+1 = 4,(如果不好理解,可以令int a = x++,則a = 3);

    接着往右看遇到++x,++在變量x的前面,要先自身+1(即x = 4+1 = 5),然后值再放到這個位置即(int y = 3 + 5 + x * 10)

    最后x * 10,此時x = 5,即 int y = 3 + 5 + 5 * 10;

    最終的結果是x = 5;y = 58;

 

  例2:

    byte b = 5;

    b++;

    b = b +1;

  問哪句會報錯,為什么?

    我們先看b = b + 1;

    b是byte類型的數,在參與運算時會自動類型提升為int數,因此b + 1的結果是個int數,int數要賦值給byte數,會報錯:損失精度.(要想具體了解請參閱http://www.cnblogs.com/wk520hll/)

    b++;

    在混合運算時,byte類型數會自動類型提升為int類型數,然而確沒有報錯

    因為在這里++隱含了強制類型轉換,即b = (byte)(b + 1);使得自加后的結果還是 byte數所以這里不會報錯.

案例:

  1.定義一個int數組{32,32,6,6,65},把這個數組中那些唯一的數字,放到一個新的數組中,生成的新數組如下:{32,6,65}.

    

  class Test02 {

    public static void main(String[] args) {

      int[] arr = {32,32,6,6,65}; //定義一個數組

      int[] temp = new int[arr.length]; //定義一個第三方數組,輔助存放那些唯一的數字

      int size = 0;

      for(int i=0; i<arr.length; i++){ //將唯一的數存放到int[] temp中

        boolean flag = contains(temp,arr[i]);

        if (!flag) {

          temp[size++] = arr[i]; //size(先賦值再自加),並且記錄唯一數的個數

        }

      }

 

      int[] newArr = new int[size];//定義新數組

      for(int i=0; i<size; i++){

        newArr[i] = temp[i]; //存放唯一數

      }

 

      System.out.println(Arrays.toString(newArr));

    }

    private static boolean contains(int[] temp, int i) { //一個int數與數組中的元素比較,如過有相等的則返回true如果沒有相等的則返回false

      for(int x=0; x<temp.length; x++){

        if (temp[x]==i) {

          return true;

        }

      }

      return false;

    }

 

  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM