JavaScript Problem mit for Schleife

DichterNebel

Cadet 4th Year
Registriert
Apr. 2009
Beiträge
66
Hi@all,

das Script sollte folgendes können:
Eine Zahl aus einen Formular übernehmen und parsen (funktioniert)
Die Zahl soll, sofern sie <10 ist, solange um 1 erhöht werden bis 10 erreicht ist.
Momentan wird die Zahl aber immer nur um 1 erhöht.
Ausgegebn soll dann wenn mann 8 eingibt: 8,9,10

Code:
<html>
<head>
<title>JavaScript</title>
</head>
<body>
<script type="text/javascript">

function rechnen(zahl) 
{

for ( var count=zahl; count<10; count++)
ergebnis = zahl+1;
return ergebnis;                         
}

function einlesen ()
{
var feld1 = parseFloat(document.eingabe.wert1.value);
var show  = rechnen (feld1);
document.write(show);
}

</script>

<form name="eingabe" methode="GET">
<input type="text" name="wert1" >
<input type="button" value="rechnen" onClick="einlesen ()">

</form>
</body>
</html>
 
sorry wenn ich falsch liege, aber fehlen bei deiner for-schleife nicht die geschweiften klammern?!
 
Der return gibt nur einen wert zurück wenn du also die were 8,9,10 zurück geben möchtest wird der erste return bearbeitet und die andern 2 fallen unter den Tisch.

Desweiteren fehlen die geschweiften Klammern in der for-Schleife
 
Zuletzt bearbeitet:
Der Fehler ist einfach nur ein kleiner:

Anstatt:
ergebnis = zahl+1;

Muss es heißen:
ergebnis = count +1;

UPDATE:
Und richtig, zusätzlich muss du noch einen "print"/"echo" für jeden for-schleifen-durchgang einbauen
 
Was du(bzw deine Funktion) grade machst ist folgendes:

Die Schleife läuft durch. Und erst wenn sie durchgelaufen ist wird (der letzte Wert) zurückgegeben.

Da auch nur ein Return-Wert in einer Funktion möglich ist, gehört die Ausgabe (document.write) mit in die Schleife.
Dann aber auch auf die geschweiften Klammern achten ;)
 
Und du sparst dir eine Variable, wenn du eine While Schleife nimmst.

Code:
while(zahl <= 10) {
    document.write(zahl);
    zahl++;
}
 
Zuletzt bearbeitet:
1. Der Freiraum zwischen einlesen und () weg. Bei rechnen () in Zeile 19 das gleiche.
2. Schleifen-Konstrukte immer zwecks Lesbarkeit mit Klammern versehen. Auch dann, wenn nur eine Anweisung erfolgt.
Code:
for(var i = 0; i < 10; i++) {
    doSomething();
}
3. Dann halt count+1 statt zahl+1, wie schon erwähnt wurde.
4. Im Form method statt methode.
5. Einrückungen (wobei ich nicht weiß, ob das am Forum liegt).
 
danke an alle !!
Im großen und ganzen waren es einfach die Klammern, count anstelle von zahl hatte ich schon probiert, aber ohne die Klammern.
Ich hab mich auf das Beispiel von selfhtml bezogen und dort sind keine Klammern dabei, allerdings war das auch ein ganz anderes Beispiel. :rolleyes:
Danke noch mal für die viele und schnelle Hilfe
 
Zurück
Oben