代码之家  ›  专栏  ›  技术社区  ›  Jay

JavaScript中的乘法表-2个表

  •  2
  • Jay  · 技术社区  · 6 年前

    我开始学习javascript,但我对这段代码有一个问题。代码要求输入两个数字(第一个数字必须小于第二个数字),然后显示从第一个数字到第二个数字的乘法。如果键入5和7,则显示5、6和7的乘法。

    当输入的第二个数字是10时,就会出现问题(除非输入1和10,否则会显示全部)。如果我键入2和10,它将不显示任何内容。

    提前谢谢。

    <script>
    function multiply() {
    do {
      do {
        var i1 = prompt("Type first number from 1 to 10", "");
      } while (i1 < 1 || i1 > 10);
    
      do {
        var i2 = prompt("Type second number from 1 to 10 (number must be higher than the first one", "");
      } while (i2 < 1 || i2 > 10);
    
      var check = i2 - i1;
    
      if (check >= 0) {
        for (var i = i1; i <= i2 ; i++) {
            for (var j = 1; j <= 10; j++) {
          document.write("<br>" + i + " x " + j + " = " +  i * j);
            }
        document.write("<p>" );
        }
      } else {
        alert("First number is higher than the second, PLease try again.")
        }
    
    } while (check < 0)
    } 
    </script>
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   wayneOS    6 年前

    的返回值 prompt () 是字符串。所以你需要 parseInt() 获取整数。

    do {
      do {
        var i1 = parseInt (prompt("Type first number from 1 to 10", ""));
      } while (i1 < 1 || i1 > 10);
    
      do {
        var i2 = parseInt (prompt("Type second number from 1 to 10 (number must be higher than the first one", ""));
      } while (i2 < 1 || i2 > 10);
    
      var check = i2 - i1;
    
      if (check >= 0) {
        for (var i = i1; i <= i2 ; i++) {
            for (var j = 1; j <= 10; j++) {
          document.write("<br>" + i + " x " + j + " = " +  i * j);
            }
        document.write("<p>" );
        }
      } else {
        alert("First number is higher than the second, PLease try again.")
        }
    
    } while (check < 0)