a = a ++如何在java中工作

时间:2013-05-01 17:27:58

标签: java

最近我遇到了这段Java代码:

int a=0;
for(int i=0;i<100;i++)
{
    a=a++;
}
System.out.println(a);

为'a'打印的值为0.但是在C的情况下,'a'的值为100。

在Java的情况下,我无法理解为什么值为0。

3 个答案:

答案 0 :(得分:12)

a = a++;

从递增a开始,然后将a恢复为旧值,因为a++会返回未递增的值。

简而言之,它在Java中没有任何作用。如果要增加,请仅使用这样的后缀运算符:

a++;

答案 1 :(得分:0)

a ++是一个后增量,因此a被赋值为a(总是0),并且a的ghost变量随后增加,与实数a没有差异,也没有保存结果。 因此,a始终分配为0,因此代码不执行任何操作

答案 2 :(得分:0)

由于:

a = a++;///will assign 'a' to 'a' then increment 'a' in the next step , but from the first step 'a' is '0' and so on

要获得100,你可以这样做:

a = ++a;////here the 'a' will be increment first then will assign this value to a so a will increment in every step 

a++;////here the increment is the only operation will do here