【发布时间】:2014-03-14 01:05:54
【问题描述】:
刚刚学习 javascript 并且很难使用此代码,希望让它重复 5 次不同的随机数学问题,但只有在回答正确的情况下才能继续下一个问题。有人可以帮我指出正确的方向吗?
// var initialization
var num1 = Math.floor(Math.random()*100)+1;
var num2 = Math.floor(Math.random()*100)+1;
var correct = num1 + num2;
var guess = 0;
var count = 1;
var msg = " ";
//var debug = 5;
// loop basic math process
while(count <= 1){
guess = eval(prompt("What is "+num1+" + "+num2+" = __ ?"));
if(guess != correct){
msg = alert("Sorry please try again");
}else{
msg = alert("By George I think you got it!");
for(i=0;i<=5;i+=1){
alert(debug);
var num1 = Math.floor(Math.random()*100)+1;
var num2 = Math.floor(Math.random()*100)+1;
var correct = num1 + num2;
guess = eval(prompt("What is "+num1+" + "+num2+" = __ ?"));
if(guess != correct){
alert("Sorry please try again");
}else{
alert("Great your on a roll!");
}}} count++;
}
【问题讨论】:
-
将
count++放在else条件中alert('Great you're on a roll!)之后。 -
感谢您的快速回复。
-
使用console.log()作为调试输出;它远远优于警报(可以在一个好的浏览器中直接显示项目、元素等,而不仅仅是可怕的
Object [object]。就此而言,也可以使用错误控制台查看错误消息!您发布的代码运行良好 - 如只要我修复了alert(debug),它会在 chrome 中引发错误。 -
eval应该像瘟疫一样被避免,直到你有足够的经验来聪明地反对那个立场。如以下示例所示,您根本不需要评估prompt()的结果。您的代码具有评估我在答案中输入的任何表达式的有趣副作用 - 最有趣的是,如果它问我总和是多少,我可以直接输入12 + 45,它会评估加法,我什至没有做数学!你几乎从来没有,几乎从来不需要eval。
标签: javascript if-statement for-loop while-loop