關於java的自增操做符與中間緩存變量機制

public static void main(String[] args){  
     int i=0;  
     i = (i++)+(i++);  
     System.out.println(i); 
     }

上面結果輸出的是1。在java裏,執行i=(i++)+(i++);建立了2個臨時的整型變量對象,對來存儲每次自增運算的結果。java

他們的執行過程以下:spa

  temp1 = i;     * tepm1==0       
  i = i + 1;           
  temp2 = i;     * temp2==1      
  i = i + 1;         
  i = temp1 + temp2 ;  * i== 1
code

問題的關鍵是:最後是各個臨時變量相加而得出結果,而不是自增(自減)的變量(i)。對象

相關文章
相關標籤/搜索