从书中学习JS,练习题是:
修改问题1的代码以请求从用户显示时间表;代码 应该继续请求并显示时间表,直到用户输入-1。另外,做一个检查 确保用户输入有效号码;如果号码无效,请询问用户 重新输入它。
这是建议的解决方案:
function writeTimesTable(timesTable, timesByStart, timesByEnd) {
for (; timesByStart <= timesByEnd; timesByStart++) {
document.write(timesTable + " * " + timesByStart + " = " +
timesByStart * timesTable + "<br />");
}
}
var timesTable;
while ((timesTable = prompt("Enter the times table", -1)) != -1) {
while (isNaN(timesTable) == true) {
timesTable = prompt(timesTable + " is not a " +
"valid number, please retry", -1);
}
if (timesTable == -1) {
break;
}
document.write("<br />The " + timesTable +
" times table<br />");
writeTimesTable(timesTable, 1, 12);
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Chapter 4: Question 2</title>
</head>
<body>
<script>
</script>
</body>
</html>
这是我的代码,它也运行相同的结果,没有!= -1
:
function writeTimesTable(timesTable, timesByStart, timesByEnd) {
for (; timesByStart <= timesByEnd; timesByStart++) {
document.write(timesTable + " * " + timesByStart + " = " +
timesByStart * timesTable + "<br />");
}
}
var timesTable;
while (timesTable = prompt("Enter the times table", -1)) {
while (isNaN(timesTable) == true) {
timesTable = prompt(timesTable + " is not a " +
"valid number, please retry", -1);
}
if (timesTable == -1) {
break;
}
document.write("<br />The " + timesTable +
" times table<br />");
writeTimesTable(timesTable, 1, 15);
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Chapter 4: Question 2</title>
</head>
<body>
<script>
</script>
</body>
</html>
为什么我在第一个while语句中需要!= -1
参数,因为我的代码运行得很好?它为什么存在,它的用途是什么?
答案 0 :(得分:1)
检查-1几乎是不是多余的。它捕获条件&#39;用户取消提示&#39;并且&#39;用户输入了一个空字符串&#39;评估为false。在您的版本中,这将终止循环,但要求是终止于用户输入&#39; -1&#39;。
答案 1 :(得分:0)
如果while
循环没有返回任何内容,它将返回-1
(或false
)。在原始示例的情况下,我假设!= -1
条件仅用于示例目的,因此对初学者更有意义。
我们假设您只想在用户输入while
时终止-2
循环。为此,您需要在循环中指定!= -2
条件,但-1
仍会终止循环。
答案 2 :(得分:0)
您告诉浏览器/编译器继续执行while循环中的代码,直到用户输入-1。当timesTable获得值&#34; -1&#34; - 也就是说,当用户输入&#34; -1&#34; - while循环停止运行。
// timesTable gets what the user enters in the prompt
// while timesTable is not equal to -1, execute the code in brackets
while ((timesTable = prompt("Enter the times table", -1)) != -1) {
while (isNaN(timesTable) == true) {
timesTable = prompt(timesTable + " is not a " +
"valid number, please retry", -1);