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:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
int i = 26;
int j = 24;
for (int x = 0; x < 1000; x++)
{
i = i / 12 + 23 * x;
j = x + j + 5;
x=x-1;
}
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
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;
}
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.
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?
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.
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!