我在java中理解複合賦值運算符和賦值運算符時遇到了一些問題。有人可以向我解釋這兩個運營商真的是如何工作的? (Somwhere我發現了一個非常好的示例代碼,它使用臨時變量來解釋工作,但遺憾的是我失去了它。)非常感謝你的優勢。下面是他們(我已經知道前綴和後綴運營商之間的差)我的小示例代碼:java複合賦值運算符和賦值運算符
int k = 12;
k += k++;
System.out.println(k); // 24 -- why not (12+12)++ == 25?
k = 12;
k += ++k;
System.out.println(k); // 25 -- why not (1+12)+(1+12) == 26?
k = 12;
k = k + k++;
System.out.println(k); // 24 -- why not 25? (12+12)++?
k = 12;
k = k++ + k;
System.out.println(k); // 25 -- why not 24 like the previous one?
k = 12;
k = k + ++k;
System.out.println(k); // 25 -- OK 12+(1+12)
k = 12;
k = ++k + k;
System.out.println(k); // 26 -- why?
邏輯的基礎是++ k的增加是在主操作之前執行的,而在k ++中主要的操作是先執行的。 – 2011-09-13 21:44:23