次の小さなプログラムのそれぞれの結果を誰かが私に説明できますか?:
public static void main(String[] args) {
int a = 10;
a = a++;
System.out.println(a);
}
結果は次のとおりです。10
割り当て後にaを増やす必要があるので、なぜ11ではないのですか?それは、操作者の左右で異なる変数になるという事実=?
次のもの:
public static void main(String[] args) {
int a = 10;
a = ++a;
System.out.println(a);
}
結果は次のとおりです。11
理解できますが、コンパイラは警告を表示します:「変数aへの割り当ては効果がありません」。しかし、結果は異議を唱えています。
アップデート:
元の質問は変更しませんが、警告の意味を理解できるように、このコメントを追加します。つまり、(単純なステートメント++ aによる)割り当てがなくても、結果は同じになります(11)。