i++和++i的区别
1、i++和++i各自的含义
i++:代表程序执行完以后在进行赋值操作
++i:代表先进行赋值然后在进行程序操作
比如下面最简单的例子:
int x=3;
int y=5;
int a1=x++;//a1会等于3
int a2=++y;//a2=6
2、到底该如何理解标题1中所说的这两个运算的含义
为什么会问这个问题,因为我发现很多身边的同事遇到这样的问题,如果问题相对简单(比如上面的例子),都不会迷糊。但是问题是,对于复杂的类似问题,有些时候也是不知如何计算。
下面通过一个例子来说明这两个运算的含义到底是如何理解:
int i=1;
int j=i+++i++;//j=?
/*
分析:前提我们知道i++:代表程序执行完以后在进行赋值操作
1、我们把表达式用括号改写为int j=(i++)+(i++);
2、程序走到第一个i++时:
2.1:先进行程序操作,1+(后面的表达式)
2.2:然后进行赋值操作,i=i+1;此时i=2.
所以执行完第一个i++以后,表达式变为3中所示
3、在执行完第一个i++以后表达式可以写为:
int j=1+(i++);此时i=2;
4、继续执行第二个i++操作,和第一个i++执行一样先程序操作然后赋值
5、int j=1+2;此时i=3;
6、所以最终结果为j=3;i=3
*/
3、联系题练习
int x=1;
int y=2;
int z=3;
y+=z--/++x;
答案为:3;
想知道原因吗,自己动手先一个测试类,然后运行。
提示:在理解这两个运算表达式以后,别忘记在java中“/”表示取商。