从提示中获取循环的所有起点和终点

Get all of the starting and endpoints of a loop out of prompt

为什么会这样:

<html>
<title> JavaScript Tutorial 1
</title>
<body>
<script language = "javascript">

var a, b, c, d, j, k, sum;
// a = window.prompt("Enter a Number");
 b = window.prompt("Enter a Number");
 c = window.prompt("Enter a Number");
 d = window.prompt("Enter a Number");

a = 5;
//b = 15;
//c = 1;
//d = 8;

sum = 0;
for (j = a; j <= b; j++) {

    for (k = c ; k <= d ; k++) {
        sum += j * j * k;
    }
}

// document.write("<br>")
document.write(sum);

</script>
<noscript>
<p> You have JavaScript Turned Off <p>
</noscript>
</body>
</html>

虽然这不是:

<html>
<title> JavaScript Tutorial 1
</title>
<body>
<script language = "javascript">

var a, b, c, d, j, k, sum;
 a = window.prompt("Enter a Number");
 b = window.prompt("Enter a Number");
 c = window.prompt("Enter a Number");
 d = window.prompt("Enter a Number");

//a = 5;
//b = 15;
//c = 1;
//d = 8;

sum = 0;
for (j = a; j <= b; j++) {

    for (k = c ; k <= d ; k++) {
        sum += j * j * k;
    }
}

// document.write("<br>")
document.write(sum);

</script>
<noscript>
<p> You have JavaScript Turned Off <p>
</noscript>
</body>
</html>

我对这个很好奇,如果我更改并将 b 设置为 15 但将 a 作为变量,它也可以工作。我不明白。

顺便说一下,post 问题这一边给出的规则简直是愚蠢的屁股...如果代码本身最能代表问题,我为什么要写更多关于这个问题的内容?所以最好考虑一下您的 posting 规则!

我有一个简单的问题,通过 2 个代码括号,我想我已经很好地指出了我将要尝试做的事情。

希望现在这足以 post 它

发生这种情况是因为 window.prompt return 是 String

当您将 a 变量声明为 a = 5; 时,您确保它是一个 Number,然后所有其他计算将自动转换为 Number 由浏览器引擎提供。

但如果您不这样做,它会尝试连接字符串,但不会按预期工作。


你可以明白我在说什么,如果你声明 a = '5';,你会发现它会像你通过 window.prompt 使用所有变量时一样工作。

并且您可以将 window.prompt return 解析为 Number,如果您想让它起作用:

a = Number(window.prompt("Enter a Number"));

用上面的代码看this fiddle I've created

当您执行 a 时,a = window.prompt("Enter a Number"); 结果是字符串类型而不是数字。问题自然会出现在这里,for (j = a; j <= b; j++)

您必须使用 parseInt() 解析它并确保 anumber 类型,然后再执行程序中的 for 循环。