1

最近、次の Java コードを見つけました。

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

「a」の出力値は 0 ですが、C の場合、「a」の値は 100 になります。

Java の場合、値が 0 である理由がわかりません。

4

3 に答える 3

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 
于 2013-05-01T17:39:40.247 に答える
0

a++ はポスト インクリメントであるため、a には a の値 (常に 0) が割り当てられ、その後 a のゴースト変数がインクリメントされ、実際の a に違いはなく、結果は保存されません。その結果、a は常に 0 に割り当てられるため、コードは何もしません。

于 2013-05-01T17:34:47.533 に答える