Kann teil eines scripts nicht nachvollziehen
Stephan
- javascript
1
Der Martin
0 steckl0 globe
hi,
ich habe angefangen mir ein bischen java script mit hilfe von selfhtml bei zu bringen, wie ich das auch schon mit html getan hab.
ich hab dann so gemütlich losgelegt und bin dann auf dieses script gestoßen:
<html>
<head>
<title>Test</title>
</head>
<body>
<script type="text/javascript">
var Hinweis = "Gleich werden Quadratzahlen ausgegeben";
alert(Hinweis);
function SchreibeQuadrate () {
var SinnDesLebens = 42;
var i, x;
var Satzteil = "Das Quadrat von ";
for (i = 1; i <= SinnDesLebens; ++i) {
x = i * i;
document.write(Satzteil + i + " ist " + x + "<br>");
}
}
</script>
</body>
</html>
(http://de.selfhtml.org/javascript/sprache/variablen.htm)
ich kann das eigenlich problemlos nachvoll ziehen, bis auf :
for (i = 1; i <= SinnDesLebens; ++i)
und das eigentlich auch alles bis auf "++i" wenn ichs weglasse, hängt sichs auf und ich kanns echt nicht nachvollziehen warum. wäre nett wenn mir das einer beantworten könnte!!
Hallo Stephan,
ich kann das eigenlich problemlos nachvoll ziehen, bis auf :
for (i = 1; i <= SinnDesLebens; ++i)
und das eigentlich auch alles bis auf "++i"
die for-Schleife hat folgende Grundstruktur:
for (<initialisierung> ; <bedingung> ; <iteration>)
{ <anweisungen, die in der Schleife ausgeführt werden>
}
Dabei ist <initialisierung> eine Anweisung, mit der meistens die Zählvariable auf ihren Startwert gesetzt wird, die Schleife wird dann solange ausgeführt, wie <bedingung> erfüllt ist, und am Ende jedes Durchlaufs wird einmal <iteration> ausgeführt - oft das Hochzählen der Schleifenvariablen, hier ++i (erhöhe den Wert von i um 1).
Nach dem gleichen Muster werden for-Schleifen auch in einigen anderen Sprachen formuliert, z.B. C oder PHP.
So long,
Martin
hi,
ich kann das eigenlich problemlos nachvoll ziehen, bis auf :
for (i = 1; i <= SinnDesLebens; ++i)und das eigentlich auch alles bis auf "++i" wenn ichs weglasse, hängt sichs auf und ich kanns echt nicht nachvollziehen warum. wäre nett wenn mir das einer beantworten könnte!!
Das ist eine Schleife.
i = 1 -> anfangswert für i festlegen
i <= SinnDesLebens -> Bedingung wie lange die schleife laufen soll
i++ -> wird nach jedem schleifendurchlauf ausgeführt '++i' ist hier das selbe wie 'i=i+1'
Wenn du i nicht nach jedem Schleifendurchlauf erhöhst ist die Bedingung i<=SinnDesLebens immer wahr und die Schleife läuft endlos.
mfG,
steckl
n'abend,
i++ -> wird nach jedem schleifendurchlauf ausgeführt '++i' ist hier das selbe wie 'i=i+1'
der Komplettheithalber möchte man noch erwähnen, dass ++i anders funktioniert als i++.
++i => pre-increment => vor der Ausführung erhöhen
i++ => post-increment => nach der Ausführung erhöhen
in einer FOR-Schleife macht das jedoch keinen Unterschied, da - wie steckl schon sagte - der 3. Teil des FOR-Statements _nach_ der Ausführung des FOR-Bodys ausgeführt wird.
Das folgende Beispiel sollte den Unterschied verdeutlichen:
var i = 0;
var j = 0;
alert( 'Increment vor der Ausführung: ' + (++i) );
alert( 'i besitzt nun den Wert: ' + i );
alert( 'Increment nach der Ausführung: ' + (j++) );
alert( 'j besitzt nun den Wert: ' + j );
weiterhin schönen abend...