我是编程新手,并且已经在这个FizzBuzz问题上工作了几天。虽然我觉得我理解如何解决FizzBuzz,但我无法在页面加载时呈现提示。 我基本上试图将用户输入的数字输入到提示符中并对其运行for循环但是在我编写for循环和条件语句之后,当重新加载页面时,提示会停止弹出。 我感到愚蠢,因为这似乎是一个简单的解决方案的问题,我已经搜索过,但我还没有找到类似这个问题的东西。我将包括我的jsfiddle。谢谢!
http://jsfiddle.net/eh_sisyphus/bxqhuktk/5/
$(document).ready(function() {
function FizzBuzz() {
var myPrompt = parseInt(prompt("What number would you like?"), 0);
for (var i = 0; i<=myPrompt; i++) {
if (i%3 === 0) {
return "Fizz";
} else if (i%5 === 0) {
return "Buzz";
} else (i%3 != 0 && i%5 != 0){
return i;
}
}
}
});
答案 0 :(得分:2)
这是解决方案:
function FizzBuzz() {
var myPrompt = parseInt(prompt("What number would you like?"));
for (var i = 0; i <= myPrompt; i++) {
if (i % 3 === 0) {
console.log("Fizz");
} else if (i % 5 === 0) {
console.log("Buzz");
} else if ((i % 3 != 0) && (i % 5 != 0)) {
console.log(i);
}
}
}
$(document).ready(function () {
console.log(FizzBuzz());
});
您将在Windows或cmd + alt + i - &gt;上的控制台(F12 - &gt;控制台)中看到您的输出。 mac上的控制台
答案 1 :(得分:0)
else
语句不带参数,只写为else { ... }
。您需要使用else if
以外的else
:
} else (i%3 != 0 && i%5 != 0){
应该是:
} else if (i%3 != 0 && i%5 != 0){
除此之外,您需要执行函数FizzBuzz()
:
function FizzBuzz() {
...
}
FizzBuzz();
既然你回来了,你可能想做:
console.log(FizzBuzz());
查看FizzBuzz()
返回的值。
注意:这将解决您正在运行的功能和显示prompt
的问题。虽然,您的解决方案无法解决 FizzBuzz 问题。主要是因为您从0 to n
循环,一旦您点击第一个if
,将返回true Fizz
并且该函数将退出。您永远不会得到Buzz
或FizzBuzz
。不要使用return
,而是使用console.log()
打印出值。
最后,为了获得"FizzBuzz"
,您可以将if(i%15 === 0)
作为第一个条件,其余为else if
:
for (var i = 0; i<=myPrompt; i++) {
if(i%15 === 0) {
console.log("FizzBuzz");
} else if (i%3 === 0) {
console.log("Fizz");
} else if (i%5 === 0) {
console.log("Buzz");
} else if(i%3 != 0 && i%5 != 0){ // Note you can change this to just "else".
console.log(i);
}
}