Java-Übung [Geschlossen]

Melden
-
 desperato -
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

Message postés
34
Date d'inscription
Donnerstag März 24, 2011
Status
Mitglied
Zuletzt online:
Oktober 25, 2012
36
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