Java里i=i++与i=++i结果的差异

代码

public class Test {
    
    
	static int i = 0;
	public static void main(String[] args) {
    
    
		i = i++;
		System.out.println(i);
		
		i = ++i;
		System.out.println(i);
	}
}

结果

在这里插入图片描述

结论

置i=0; 计算i = i++;的执行过程是先将i++这个表达式计算出来得出0(这个结果的值就是之前赋值给i的值),然后i自增1,i这个时候已经变成了1,最后才将右边表达式的值(0)赋给左边的i(1),最终结果就是i的值被赋成了0.
而置i=0;i = ++i;的运算则是先i自增1,在计算++i这个表达式的值(这个值的结果就是i,而i已经自增1了,所以表达式的值为1)所以最后右边表达式赋值(1)给左边的i(1),结果i=1;
简单来说,i=i++;的计算步骤为:1、计算表达式 2、i自增 3、赋值
i=++i;的计算就是把步骤1 和 2颠倒一下

以上只是自己的一点想法,有错误恳请指正。

猜你喜欢

转载自blog.csdn.net/qq_33473340/article/details/104507937