先说结论
结论:在JAVA中 i++与++i是有区别的,
先看下面的代码
package scanner;
public class text {
public static void main(String[] args) {
int x=0;
int y=0;
x=x++;
x=x++;
x=x++;
System.out.println("x="+x);
y=y++;
y=y++;
y=y++;
System.out.println("y="+y);
x=++x;
x=++x;
x=++x;
System.out.println("x="+x);
y=++y;
y=++y;
y=++y;
System.out.println("y="+y);
}
}
结果:
原来m++是一个表达式,是有返回值的,它的返回值就是m自加前的值,Java对自加是这样处理的:首先把m的值(注意是值,不是引用)拷贝到一个临时变量区,然后对m变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下: 步骤1 JVM把m值(其值是0)拷贝到临时变量区。 步骤2 m值加1,这时候m的值是1。 步骤3 返回临时变量区的值,注意这个值是0,没修改过。 步骤4 返回值赋值给m,此时m值被重置成0