JAVA里面 ++和+1的区别

来源:百度知道 编辑:UC知道 时间:2024/06/03 09:32:29
在FOR循环里的参数是 X++ 或者 X+ 1 或者++X,结果不一样,请问他们的区别在哪里。望详细

如:
int i=0;
int a=i++;
int b=i+1;
int c=++i;

a的值为0;
b的值为2;
c的值为2;

原因如下:
i++,
这个表达式的意思是先返回i的值,再把i加1
所以 a的值即等于0,而此时i的值为1;
即a=i++相等于
a=i;
i++;
·······
i+1就不说了
·······
++i
a=++i这个表达式相当于
i=i+1;
a=i;
先自加1 在返回结果

明白了 吗

for(int i=0; i<10; i++) {

System.out.print(i + " ");
}

for(int j=0; j<10; ++j) {

System.out.print(j + " ");
}

for(int k=0; k<10; k=k+1) {

System.out.print(k + " ");
}
你会发现结果是一样的

1、x = x + 1
首先寻找右面x的地址,然后读取地址中x的值,再在寄存器中将x的值加1,接着寻找左面x的地址(计算机是不知道左面的x就是右面的x的),再讲刚计算的结果存到左面的x的地址中

2、x += 1
寻找x的地址,然后读取地址中x的值,再在寄存器中将x的值加1,接着将计算结果存到x的地址中(这里计算机知道读与写两个操作的地址是相同的)

3、x++
寻找x的地址,然后读取地址中x的值,然后直接将地址中的值加1

从上面的过程可以看出,x++比x+=1少了一个写的过程,而x+=1比x=x+1少了一个寻址的过