do-While Code Ausführung

Say

Aktives Mitglied
Hallo zusammen,

nun habe ich relativ Mühe mit dem folgenden Code:

int i = 4;
int j = 2;
do {
i -= 1;
System.out.print( i + " " + j + " ");
j += 2;
++i;
} while(i + j <= 10);
System.out.print( i + " " + j);

Iteration 1: 3 2 4 4
Gibt aus: 3 2
j = 4
i = 4
Gibt aus: 4 4

Eigentlich sollte es folgendes ausgeben: 3 2 3 4 3 6 4 8? Aber ich erhalte 4 statt 3. Liegt es evtl an ++1 dieses wird eher später ausgeführt?

Vielen Dank für eure Hilfe!

Gruss
Sayuri
 
Hier verstehe ich das Problem nicht? Was ist das Problem?

In der Schleife ist i immer 3, denn vor der Ausgabe reduzierst Du es um 1 und nach der Ausgabe wird es wieder um 1 erhöht,

Da immer 3_3_3_

Die letzten zwei Zahlen werden nach der Schleife ausgegeben, daher ist i dort 4.

Die Zweite Ziffer ist immer j und nach der Ausgabe um 2 erhöht, also 2 4 6
Nach der Ausgabe in der Schleife wird i wieder auf 4 gesetzt und j um zwei erhöht: 4+8 ist größer als 10 daher verlässt er die Schleife und dann werden i und j ausgegeben.

==> 3 2 3 4 3 6 4 8 als Ausgabe.
 
Hier verstehe ich das Problem nicht? Was ist das Problem?

In der Schleife ist i immer 3, denn vor der Ausgabe reduzierst Du es um 1 und nach der Ausgabe wird es wieder um 1 erhöht,

Da immer 3_3_3_

Die letzten zwei Zahlen werden nach der Schleife ausgegeben, daher ist i dort 4.

Die Zweite Ziffer ist immer j und nach der Ausgabe um 2 erhöht, also 2 4 6
Nach der Ausgabe in der Schleife wird i wieder auf 4 gesetzt und j um zwei erhöht: 4+8 ist größer als 10 daher verlässt er die Schleife und dann werden i und j ausgegeben.

==> 3 2 3 4 3 6 4 8 als Ausgabe.

Das Problem ist eher bei i. Hier schreibe ich kurz, wie ich den Code verstanden habe:
Also zuerst wird i um 1 minimiert.
4
i wird um 1 minimiert = 3
dann gibt es für i =3 aus und für j = 2
danach wird i um 1 erhört also d.h i =4
in der While Schleife wird 4 + 4 überprüft, ob kleiner als 10 - Ja ist kleiner und gibt 4 und 4 aus

Also in der ersten Iteration ist es 3 2 4 4 aus. Was ich jetzt nicht verstehe es sollte eigentlich 3 2 3 4 sein. Warum 3?
 
in der While Schleife wird 4 + 4 überprüft, ob kleiner als 10 - Ja ist kleiner und gibt 4 und 4 aus
Warum soll er 4 4 ausgeben? Die Bedingung ist wahr, also läuft die Schleife weiter. Das erste was vor der Ausgabe passiert, ist dass i um 1 verringert wird - damit ist i dann 3. Dann erst erfolgt die Ausgabe
 

Zurück
Oben