Iteration

Mehmetaa

Neues Mitglied
1674261797976.png
Kann mir jemand die Frage mit den Rechenwegen erklären? Ich bekomme immer ein anderes Ergebnis als die Konsole ausgibt raus.
Vielen Dank im Voraus
 
Dann benutze doch den Debugger und gehe es im Einzelschritt duch.
Schaue dir bei jedem Schritt alle Variablen an. Notiere es notfalls.
 
Das kannst du auch direkt auf dem Papier nachvollziehen (hast du ja anscheinend schon gemacht).

Java:
i    j    z
1    8    0    Startwerte
1    8    9    nach erster Anweisung in der Schleife
1    8    9    am Ende des 1. Durchlaufs
usw.

Mit diesen Werten wird die Schleife zum ersten Mal durchlaufen, da die Schleifenbedingung i <= j erfüllt ist.

Du kannst dein Ergebnis auch hier zeigen, wenn es nicht stimmt. Dann kann man helfen deinen Denkfehler zu finden.
 
Zuletzt bearbeitet:
Mit STift und Papier und etwas ausführlicher ist es noch einfacher - da muss man dann gar nichts "merken" oder "im Kopf machen".... Und man kann es dann auch leicht korrigieren.

Geh den Code durch und schreibe immer alles auf, was sich ändert. Ausgaben kann man auch so mit notieren....

Dann geht es los mit int z=0 also schreiben wir auf den Zettel:
z = 0
Dann kommt die Schleife - da steckt ja erst einmal drin:
i = 1
j = 8
i <= j? 1 < 8? Ja
z = 0+1+8 = 9
(Das z = 0 markieren, dass es alt ist!)
j - i = 8 -1 == 1? Nein
i = 1 + 1 = 2
j = 8 - 2 = 6
...

Schreib es einfach so auf. Dann kannst Du eigentlich nichts vergessen oder so. Das einzige Risiko ist, dass man eine zu alte Variablenbelegung wählt wenn man den Wert braucht. Aber dazu markieren wir die Zeilen als Alt. (Durchstreichen ist schlecht - falls man einen Fehler bemerkt und korrigieren will. Aber hinten abhaken oder so würde gehen.)

Das ist dann die ausführliche Methode, die sehr wenig Chancen auf Fehler bietet aber natürlich viel zu schreiben ist.

Mit etwas mehr Übung sollte es möglich sein, die Variante von @temi zu nutzen, die deutlich weniger Schreibarbeit darstellt.
 

Neue Themen


Zurück
Oben