最近、次の Java コードを見つけました。
int a=0;
for(int i=0;i<100;i++)
{
a=a++;
}
System.out.println(a);
「a」の出力値は 0 ですが、C の場合、「a」の値は 100 になります。
Java の場合、値が 0 である理由がわかりません。
最近、次の Java コードを見つけました。
int a=0;
for(int i=0;i<100;i++)
{
a=a++;
}
System.out.println(a);
「a」の出力値は 0 ですが、C の場合、「a」の値は 100 になります。
Java の場合、値が 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
a++ はポスト インクリメントであるため、a には a の値 (常に 0) が割り当てられ、その後 a のゴースト変数がインクリメントされ、実際の a に違いはなく、結果は保存されません。その結果、a は常に 0 に割り当てられるため、コードは何もしません。