Java-Übung

Geschlossen
Fozzie - Geändert am 26. Oktober 2018 um 07:04
 desperato - 17. November 2011 um 11:26
Hallo,

Kann mir bitte jemand vielleicht erklären, warum gibt den folgenden Code solche Ausgaben :

n = p = 0 ;
while (n<=8) n+= p++ ; ==> n=10 ??

n = p = 0 ;
while (n<=5) n+=p++; ==> n = 15 ??


Danke

3 Antworten

kaletto Beiträge 34 Mitglied seit Donnerstag März 24, 2011 Status Mitglied Zuletzt online: Oktober 25, 2012 45
Geändert am 26. Oktober 2018 um 07:04
Hallo,

von CCM werden deine Aufgaben oder Übungen nicht gelöst !!!
Die musst du selber machen.

Ich bitte Sie dies in Zukunft zu beachten !!!

MfG
Hallo,

Es geht nicht um die Lösungen von Übungen, ich brauche nur eine logische Erklärung. Die Lösung habe ich selber.
Also ziehe mich bitte nicht gleich vor Gericht !!!

MfG
Hallo,

gehen wir schrittweise vor, und ich werde zu erklären versuchen wieso man solche Ausgaben bekommt.

Dein Teilprogramm:
n = p = 0 ;
while (n<=8)
n+= p++ ;

==> n=10 <== Ausgabe

z.B definieren wir zu erst:
int i <---- darstellt die Iterationen der Schleife , ausgehend von 1.
int r <-----Ergebnis der Rechnung n+= p++


n+= p++ ----> n=n+p zusätzlich wird p um 1 post inkrementiert also nach der Zuweisung ( n= n+p )

Jetzt schreiben wir eine kleine Tabelle, um mehr Klarheit zu schaffen:
i n p r
1 0 0 0
2 0 1 1
3 1 2 3
4 3 3 6
5 6 4 10
6 10 5 15 <---ab hier wird die Bedingung von der while-Schleife (n <= 8) verletzt da n=10 .


Somit sind deine Ausgaben nicht richtig wiedergegeben !!!

richtig wäre also:

n = p = 0 ;
while (n<=8) n+= p++ ; ==> n=10

n = p = 0 ;
while (n<=5) n+=p++; ==> n = 6