Tabelle wird nicht immer generiert, abhängig von den Zahlen
Joerg
- javascript
Hallo,
ich will eine Tabelle generieren die mir das ein mal eins variabel erstellt. Nun funktioniert mein Programm mit den Zahlen 1und 10, aber nicht mit 2 und 10. Das heisst es gibt Zahlen bei denen das ganze funktioniert und welche bei denen nicht. Warum ist das so? Mein Code sieht so aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Tabelle mit dem ein mal eins</title>
</head>
<body>
<script type="text/javascript">
function SchreibeTabelle ()
{
var Min_Wert, Max_Wert;
var i, j, Wert,Anfang;
Max_Wert = document.Formular.Endwert.value;
Min_Wert = document.Formular.Startwert.value;
document.write('<table border="1">');
document.write("<tr>");
document.write("<td>"+"x"+"</td>");
for (i = Min_Wert; i <= Max_Wert; i++)
{
document.write("<td>" + i + "</td>");
}
document.write("</tr>");
for (j = Min_Wert; j <= Max_Wert; j++)
{
document.write("<tr><td>" + j + "</td>");
for (i = Min_Wert; i <= Max_Wert; i++)
{
Wert = i*j;
document.write("<td>" + Wert + "</td>");
}
document.write('</tr>');
}
document.write('</table>');
}
</script>
<p> Wert von bis zu dem das Ein mal eins dargestellt werden soll. </p>
<form name="Formular" action="">
<input type="text" name="Startwert" size="5">
<input type="number" name="Endwert" size="5">
<input type="button" value="Berechnen" onclick="SchreibeTabelle()">
</form>
</body>
</html>
Hi,
ich will eine Tabelle generieren die mir das ein mal eins variabel erstellt. Nun funktioniert mein Programm mit den Zahlen 1und 10, aber nicht mit 2 und 10. Das heisst es gibt Zahlen bei denen das ganze funktioniert und welche bei denen nicht. Warum ist das so?
Weil keine Zahlen verwendet werden.
Max_Wert = document.Formular.Endwert.value;
Min_Wert = document.Formular.Startwert.value;
Du liest hier die Werte aus Formularfeldern aus - dabei erhältst du *immer* Strings, keine Zahlen.
for (i = Min_Wert; i <= Max_Wert; i++)
Stringvergleiche werden immer Zeichen-für-Zeichen durchgeführt.
Wenn du "1" mit "10" vergleichst, dann ist "1" kleiner als "10" - weil das erste Zeichen in beiden Strings gleich ist, und der erste danach schon zuende ist, beim zweiten jedoch noch etwas folgt.
Wenn du "2" mit "10" vergleichst - dann ist "2" grösser als "10", weil das erste Zeichen "2" des ersten Strings grösser ist als das erste Zeichen "1" des zweiten Strings - also ist die Bedingung deiner for-Schleife schon von Anfang an nicht erfüllt.
Wandle die Strings, die du aus den Formularfeldern ausliest, erst in Zahlenwerte um - bspw. mittels parseInt.
MfG ChrisB
Hi,
Nun funktioniert mein Programm mit den Zahlen 1und 10, aber nicht mit 2 und 10.
hast Du das getestet? Bei dem Code, den Du hier gepostet hast, wirst Du nie die Werte 2 und 10 antreffen, sondern nur "2" und "10". Da "2" größer als "10" ist, wird mindestens eine der Schleifen nie durchlaufen.
Cheatah