尝试让用户输入一个数字,如果他们输入一个字符串,我想提示他们输入一个数字。好像我得到了那个部分,但我怎么能得到第二个提示,以便在用户输入实际数字之前一直弹出。截至目前,一旦用户再次输入字符串,之后就无法运行。非常感谢任何建议。
以下是代码:
function enterNumber(n) {
n = parseInt(prompt("Please enter a number: "));
if (isNaN(n)) {
n = parseInt(prompt("You did not enter a number. Please enter a number: "));
for(var i = 1; i <= n; i++) {
if (i % 15 === 0) {
document.write("Fizz Buzz" + "<br>");
continue;
}
else if (i % 3 === 0){
document.write("Fizz" + "<br>");
continue;
} else if (i % 5 === 0) {
document.write("Buzz" + "<br>");
continue;
}
document.write(i + "<br>");
}
}
};
enterNumber();
答案 0 :(得分:2)
使用while
循环,直到输入的是数字。
function enterNumber(n) {
while (isNaN(parseInt(n))) {
n = parseInt(prompt("Please enter a number: "));
}
for (var i = 1; i <= n; i++) {
if (i % 15 === 0) {
document.write("Fizz Buzz" + "<br>");
continue;
} else if (i % 3 === 0) {
document.write("Fizz" + "<br>");
continue;
} else if (i % 5 === 0) {
document.write("Buzz" + "<br>");
continue;
}
document.write(i + "<br>");
}
};
enterNumber();
您还可以使用嵌套的三元运算符缩短代码,如下所示。
function enterNumber(n) {
while (isNaN(parseInt(n))) {
n = parseInt(prompt("Please enter a number: "));
}
for (var i = 1; i <= n; i++) {
var title = i % 15 === 0 ? 'Fizz Buzz' : i % 3 === 0 ? 'Fizz' : i % 5 === 0 ? 'Buzz' : i;
document.write(title + "<br>");
}
};
enterNumber();
答案 1 :(得分:1)
试试这个
function enterNumber(n) {
while (isNaN(n))
n = parseInt(prompt("You did not enter a number. Please enter a number: "));
for (var i = 1; i <= n; i++) {
if (i % 15 === 0) {
document.write("Fizz Buzz" + "<br>");
continue;
} else if (i % 3 === 0) {
document.write("Fizz" + "<br>");
continue;
} else if (i % 5 === 0) {
document.write("Buzz" + "<br>");
continue;
}
document.write(i + "<br>");
}
};
enterNumber();