1. 程式人生 > 其它 >對於'a = a++;'操作的理解

對於'a = a++;'操作的理解

今天偶然看到這個問題:   'a = a++;'操作執行完後,a的值不變。 自己簡單測試了一下,確實是這樣,開始時沒想明白,以下是對該操作的理解及記錄。 int a = 10; 1)a = a + 1;  System.out.println(a); // a = 11; 2)a++;   System.out.println(a); // a = 11; 3)a = a++;   System.out.println(a); // a = 10; 情況1)比較好理解:   讀取a的值10,加1,結果11,重新賦值給a; 情況2)3)可以藉助HashMap的put方法來理解:   將'a++'理解為put("a", 10 + 1)操作,a的值在map中更新為11,方法返回舊值10;   然後來理解2)和3)的區別:     a++; // put("a", 10 + 1),a的值更新為11,返回的舊值10沒有被接收(即丟棄)     System.out.println(a); // 讀取a的值11     a = a++; // a = put("a", 10 + 1),a的值更新為11,返回的舊值10又重新賦值給a(即a的值又變回10)     System.out.println(a); // 讀取a的值10