Joerg: Tabelle wird nicht immer generiert, abhängig von den Zahlen

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>

  1. 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

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes