先上代碼
@Test
public void testBasic(){
int num = 50;
num = num++;
System.out.println(num);
}
結果輸出是50,如果你已經知道,無需往下看了。
Java的後綴++的實現方式與C/C++不同,以上述代碼爲例,運行步驟如下
- 執行num++,原始num創建副本temp,原始num自增1,此時temp=50,原始num=51,然而num++是返回副本,也就是返回temp。
- 執行賦值,這一步是temp賦值給num,賦值之前,num=51,temp=50,所以賦值之後num依舊爲50
如何驗證以上說法?去編譯器試試下面一段代碼
@Test
public void testBasic(){
int num = 50;
num = num++;
num = num++;
num = num++;
System.out.println(num);
}