2016-03-22 8 views
0

Von was ich verstehe, wenn ich eine Variable k = 5 habe, und ich tun ++ k, der neue Wert von k = 6. Wenn ich k ++, bleibt der Wert 5 bis k erscheint das zweite Mal in dem Programm, das, wenn es um 6.en zB geändert wird:Post/Pre-Increment Verwirrung

k = 5; 
System.out.println(k++); //prints 5, but now that k has appeared the second time, its value is incremented to 6 
System.out.println(k); //prints 6 

jedoch in diesem Code:

class test { 
    public static void main(String args[]){ 
     for(int i =0; i<10; i++){ 
      System.out.println(i); 
     } 
     int x = 0; 
     x++; 
     System.out.println(x); 
    } 
} 

Ausgang:

0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
1 

In der Schleife, obwohl die Variable i zum zweiten Mal erscheint (in System.out.println (i)), bleibt der Wert auf 0. Aber für x, wenn es zum zweiten Mal erscheint (in System.out.println (x);) sein Wert wird erhöht. Warum? Ich bin verwirrt darüber, wie Post und Pre-Inkrement arbeiten.

+0

die for-Schleife läuft vor der i ++ – softwarenewbie7331

+0

Oh, yeah. "Wie arbeiten die Post-Inkrement (i ++) - und Pre-Inkrement (++ i) -Operatoren in Java?" hat schon die Antwort auf meine Frage. Entschuldigung für die Veröffentlichung. Kann ein Moderator diese Frage löschen? – User2956

+0

Entschuldigung, dass ich als Duplikat markiert habe. Ihre Frage war eigentlich, wann das Post-Increment in einer for-Schleife passiert. –

Antwort

1

Für Ihren Code

for(int i =0; i<10; i++){ 
     System.out.println(i); 
    } 

zunächst die Variable i auf 0 initialisiert wird, überprüft er dann, wenn er die Bedingung i < 10 erfüllt und die Variable drucken und schließlich erhöht die Variable i.

So funktioniert die for-Schleife.

Im zweiten Codeabschnitt, den Sie geschrieben haben, wird die Variable x inkrementiert und zuletzt der Wert von x ausgegeben.