【发布时间】:2014-06-14 20:15:21
【问题描述】:
最近开始学习 Javascript,尝试阅读 Javascript: The Definitive Guide 和 Eloquent Javascript,同时自己去尝试一些东西以便真正将它们铭刻在我的记忆中。我想了一个了解算术运算和条件语句的好方法,我会围绕每个数学运算符构建一系列小游戏,并从加法开始。
function beginAdditionChallenge() {
var x = Math.ceiling(Math.random()*100);
alert(x);
for (var i = 0; i < 3; i++) {
var a = Number(prompt("Provide the first addend.", ""));
var b = Number(prompt("Provide the second addend.", ""));
if (a + b === x) {
alert("Well done!");
break;
}
else if (a + b !== x && i < 3) {
alert("Please try again.");
}
else {
alert("Fail.");
}
}
}
function initChallenge() {
var button = document.getElementById("challengeButton");
button.addEventListener("click", beginAdditionChallenge);
}
window.addEventListener("load", initChallenge);
到目前为止,您可以在 JSFiddle here 上看到全部内容。这个想法是点击按钮生成一个介于 1 和 100 之间的随机数,将其显示给用户,然后提示他们提供两个加数,给他们 3 次尝试。如果这些加数之和等于RNG数,则祝贺用户并结束程序。如果他们没有提供合适的加数,循环会提示他们再试一次,直到他们尝试了 3 次,此时程序会捕捉到他们并结束。
我知道事件侦听器不是这里的故障点,因为当我将 beginAdditionChallenge 更改为简单地显示测试警报时,它可以工作,但我不知道我创建的循环到底出了什么问题。
【问题讨论】:
-
Math.ceiling应该是Math.ceil
标签: javascript loops if-statement for-loop