Terminierung von Schleifen |
07.12.2014, 13:02 | Auf diesen Beitrag antworten » | |||||
neuling96 | Terminierung von Schleifen hallo, überprüfe ob die schleife Terminiert int i = 26; int j = 24; for (int x = 0; x < 1000; x++) { i = i / 12 + 23 * x; j = (x--) + j + 5; } da in jedem durchgang x um eins erhöht wird, wird nach 1000 Durchgängen x<1000 abgebrochen! |
|||||
|
||||||
07.12.2014, 13:35 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Du hast zwar ein x++, allerdings bei der Zuweisung von j auch ein x-- Unterm Strich ändert sich also das x in einem Schleifendurchgang nicht. |
|||||
07.12.2014, 13:45 | Auf diesen Beitrag antworten » | |||||
neuling96 | müsste dann nicht int i = 26; int j = 24; for (int x = 0; x < 1000; x++) { i = i / 12 + 23 * x; x=x-- j = x+ j + 5; ? oder hat x-- eine besondere bedeutung? |
|||||
07.12.2014, 14:05 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | aber bei x++ ist es doch auch nichts anderes und das x wird inkrementiert. x++ erhöht x um eins und x-- zieht eins ab. x-- ist das selbe wie x = x-1 x = x-- gibt es nicht, da wird der Wert von x auf beiden Seiten des Gleichheitszeichens verändert, da kann nichts gutes rauskommen. |
|||||
Anzeige | ||||||
|
||||||
07.12.2014, 15:06 | Auf diesen Beitrag antworten » | |||||
neuling96 | d.h der code int i = 26; int j = 24; for (int x = 0; x < 1000; x++) { i = i / 12 + 23 * x; j = (x--) + j + 5; } ist gleich nt i = 26; int j = 24; for (int x = 0; x < 1000; x++) { i = i / 12 + 23 * x; x=x-1; j = x + j + 5; } |
|||||
07.12.2014, 16:23 | Auf diesen Beitrag antworten » | |||||
Karlito | Hallo neuling96, nein, leider nicht. Das ist am Anfang ein wenig verwirrend: x-- ist ein post-dekrement. D.h. es wird erst der Wert von x verwendet und danach wird der Wert x um 1 verringert. Äquivalent wäre also folgender code:
Ein pre-dekrement gibt es übrigens auch. Das sieht dann so aus: --x. Eine bitte noch: verwende bitte in Zukunft die [code][/code] Umgebung für deine Quelltexte. Gruß, Karlito |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |
|