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
0
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
0
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
0
Treten Sie der Community bei