我已经做过几次 FizzBuzz,但从来没有遇到过这个问题。也许,这是我不理解的 for 循环的基本原理。出于某种原因,下面的代码运行时间比它应该运行的时间长 10 倍(嗯,比我认为的应该)。如果用户输入 20,它将运行到 200。我通过设置 i = 0 解决了这个问题;i < num 然后将 i+1 打印到我的 div 中,但我仍然不明白为什么原始代码无法按预期工作。当我这样做时,我不妨承认我仍然无法正确设置 JSFiddle。http://jsfiddle.net/nngrey/hA4pg/(这根本不运行。)因此,对此的任何想法也将不胜感激。谢谢!
<head>
<title>Fizz Buzz</title>
<script>
function fizzbuzz(){
var num = prompt("Please enter a number between 1 and 100: ");
for(var i=1; i<num+1; i++){
if (i%3===0 && i%5===0){
document.getElementById("div1").innerHTML = div1.innerHTML+"<p>Fizz Buzz</p>";
}else if (i%3===0){
document.getElementById("div1").innerHTML = div1.innerHTML+"<p>Fizz</p>";
}else if (i%5===0){
document.getElementById("div1").innerHTML = div1.innerHTML+"<p>Buzz</p>";
}else{
document.getElementById("div1").innerHTML = div1.innerHTML+"<p>"+i+"</p>";
}
}
}
</script>
</head>
<body onLoad = "fizzbuzz()">
<div id = "div1">
<h1>Fizz Buzz</h1>
</div>
</body>