算术运算符++和--的用法

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 = (byte)(b + 1);使得自加后的结果还是 byte数所以这里不会报错.

案例:

定义一个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) {
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;
    }
 
  }