zählerinkrementierung in scheife
Caveman
- javascript
hallo forum,
mir ist aufgefallen daß es in einer normalen for- schleife völlig egal ist, ob man mit ++i oder i++ arbeiteit. z.b.:
for (i=0; i<5; i++ bzw. ++i)
{
document.write(i + '<br>');
}
falls das kein bug ist, kann mir das bitte jemand erklären.
Da du im for Statement nicht mehr mit i rechnest, ist es wirklich egal.
CYa
GONZO
Hallo Hoehlenmensch! ;-)
mir ist aufgefallen daß es in einer normalen for- schleife völlig egal ist, ob man mit ++i oder i++ arbeiteit. z.b.:
for (i=0; i<5; i++ bzw. ++i) {
document.write(i + '<br>');
»» }
falls das kein bug ist, kann mir das bitte jemand erklären.
Nee, das ist kein Bug.
Die For-Schleife
for ([initializing]; [while-condition]; [statement]) {
[for-block];
}
ist einfach nur eine andere Schreibweise fuer
[initializing];
while ([while-condition]) {
[for-block];
[statement];
}
in Deinem Beispiel also
i = 0;
while (i < 5) {
document.write(i + '<br>');
i++ bzw. ++i;
}
Jetzt siehst Du sicher, dass i++ und ++i keinen Unterschied machen.
Calocybe
alles klar und vielen dank, Calocybe
ist das höhere javascript-theorie oder so, denn in C lauten doch die regeln etwas anders - oder?
Hi nochmal!
ist das höhere javascript-theorie oder so, denn in C lauten doch die regeln etwas anders - oder?
Nein, das ist pures C, dort ist es naemlich ganz genauso. Genauer gesagt, ich weiss das nur, weil es dort so ist. JS hat das nur von C uebernommen.
Calocybe
hi Calocybe,
Jetzt siehst Du sicher, dass i++ und ++i keinen Unterschied machen.
haaalt, nicht ganz. (habe grade das schlaue Mintert-Buch aufgeschlagen ;-)
also:
a=5;
b=++a;
zuerst auf 6 hochzaehlen, danach b den wert 6 zuweisen.
b=a++;
b den wert von a, also 5 geben,_dann_auf 6 hochzaehlen.
Naja, ist was fuer Theoretiker *grins*
Viele Gruesse Joachim
Hi Joachim
a=5;
b=++a;
zuerst auf 6 hochzaehlen, danach b den wert 6 zuweisen.
b=a++;
b den wert von a, also 5 geben,_dann_auf 6 hochzaehlen.
Ganz richtig, aber bei der Vorschleife steht ja das i++ bzw ++i allein auf der Zeile. Es wird also einfach inkrementiert, ohne irgendetwas anderes (z.B. eine Zuweisung an b) zu machen. Da ist es dann egal, ob erst nichts gemacht wird und dann i inkrementiert, oder erst i erhoeht und dann nichts getan wird. *g* Genau darum ging es Caveman ja. Er dachte (vermutlich), dass bei ++i das i schon am Beginn der For-Schleife inkrementiert werden muesste.
Naja, ist was fuer Theoretiker *grins*
Och, man kann das auch praktisch anwenden. So kann man naemlich seine Befehle so komplex machen, dass jemand anderes fuer jede Zeile eine halbe Stunde braucht, um sie zu kapieren. ;-)
Calocybe
hi,
Och, man kann das auch praktisch anwenden. So kann man naemlich seine Befehle so komplex machen, dass jemand anderes fuer jede Zeile eine halbe Stunde braucht, um sie zu kapieren. ;-)
aber darin bist Du kein Meister, Dich kapiert man immer schneller *grins*
Viele Gruesse Joachim