Re:Java自增自减解析

一,i++和++i的区别

  i++和++i都相当于i = i + 1,主要区别在于将其值赋值给其他变量时:

  int i = 1

  int j = i ++   结果为 j = 1,i = 2。i会先指派j的值,然后再执行i自增操作

  int j = ++ i   结果为 j = 2,i = 2。先执行i自增操作,再将i的值赋值给j

 

二,实例演示

public class AutoIncrease {

    public static void main(String[] args) {
        int i = 1;
        i = i++;
        int j = i++;
        int k = i + ++i * i++;
        System.out.println("i="+i);
        System.out.println("j="+j);
        System.out.println("k="+k);
    }
}

//运行结果为: i=4, j=1, k=11

 

三,小结

  1,赋值=,最后计算

  2,=右边的从左到右加载值依次压入操作数栈

  3,实际先算哪个,看运算符优先级

  4,自增,自减操作都是直接修改变量的值,不经过操作数栈

  5,最后的赋值之前,临时结果也是存储在操作数栈中

 

四,补充,java运算优先级

算术运算符>比较运算符>赋值运算符>逻辑运算符>三元运算符 

单目:单目运算符+ –(负数) ++ – 等
乘除:算数单目运算符* / % + -
位运算:位移单目运算符<< >>
关系运算:关系单目运算符> < >= <= == !=
逻辑:逻辑单目运算符&& || & | ^
三目:三目单目运算符A > B ? X : Y
赋值:赋值=

 

posted @ 2019-08-07 11:07  Noperx  阅读(194)  评论(0编辑  收藏  举报