2013-05-21 23 views
-1

後增算子的控制流程是什麼?Java中的預修增量的工作原理

public class PostIncrement 
{ 
    public static void main(String[] args) 
    { 

     int a = 0; 
     for(int i=0;i< 2 ;i++) 
     { 
      a =a++;  
     } 

     for(int i=0 ;i< 1;i++) 
     { 
      a++; 
     } 

     System.out.println("Result2 :"+" "+a);   
    } 

} 

的結果是如0和1

爲什麼會這樣呢?

+0

因爲兩個循環變量都被稱爲'i',所以這段代碼甚至不會編譯。 – 2013-05-21 08:30:58

+0

甚至更​​多的維基百科討論它.. http://en.wikipedia.org/wiki/Increment_and_decrement_operators – AurA

+0

'x = x ++'。是啊。 Duplicate –

回答

0

在語句完成後執行後綴運算符++

第一次打印a的值時,打印爲零,因爲沒有任何更改。 接下來,您輸入執行一次的for循環,遞增a的值。它實際上並不重要,因爲在該聲明中沒有其他說明。 a的值現在是1

您可以打印出1

順便說一句,您的代碼實際上並不工作,因爲內部變量i隱藏了外部變量,因此您將在重新聲明i時收到編譯器錯誤。我認爲你的意思是一個不同的變量,如j

+0

對不起,我寫錯了.. – Ullas

0

a ++將首先使用該特定語句中的a值,然後對其進行增量。

例如。

a=0; 
sysout(a++); 
sysout(a); 

其結果將是0和1

所以你的情況,如果你寫了第二個for循環

 for(int i=0 ;i< 1;i++) 
     { 
       sysout(a++); 
     } 

將打印0和0和1