joshua bloch による「Java puzzlers」からの次のコードの表も裏も作成できません。
public class Test22{
public static void main(String args[]){
int j=0;
for(int i=0;i<100;i++){
j=j++;
}
System.out.println(j); //prints 0
int a=0,b=0;
a=b++;
System.out.println(a);
System.out.println(b); //prints 1
}
}
j が 0 を出力する部分を取得できません。著者によると、
j=j++
と類似しています
temp=j;
j=j+1;
j=temp;
しかし
a=b++
b を 1 にします。したがって、次のように評価する必要があります。
a=b
b=b+1
同じ論理に従うことで、すべきではありません
j=j++
として評価され、
j=j
j=j+1
ここで一時はどこに現れますか?どんな説明でも大歓迎です。<< 私はこれについて頭を悩ませています。;)>> よろしくお願いします。