这个嵌套直到i和j目前都是3。如何在变量上限后重置变量,以便继续循环?
或者这不是正确的思考过程吗?
for (i=1; i<=3; i=i+1)
{
for (j=1; j<=3; j=j+1)
{
ans=i + j;
document.write(i + "+" + j + "=" + "<br />");
var user_input = prompt("What is your answer?",0);
while (user_input != ans) {
if (ans == user_input)
{
document.write("Yes, the answer is " + ans + "<br />");
}
else
{
document.write("No, the answer is " + ans + "<br />");
}
}
}
}
我尝试了一个while循环,但它一直在崩溃。我对这个问题的逻辑只是有点不确定。
我正在尝试做什么:
如果用户在任何时候正确回答,则循环结束。但是我不希望数学加上6。一旦它达到6,我最好喜欢它重置为i和j。
答案 0 :(得分:1)
我认为你不需要while循环。假设用户回答错误,他们会得到新问题,如果他们回答正确,整个过程就会停止,请尝试这个
var finish = false;
for (i=1; i<=3; i=i+1)
{
for (j=1; j<=3; j=j+1)
{
ans=i + j;
console.log(i + "+" + j + "=" + "<br />");
var user_input = prompt("What is your answer?",0);
if (ans == user_input)
{
finish = true;
console.log("Yes, the answer is " + ans + "<br />");
break;
}
else
{
console.log("No, the answer is " + ans + "<br />");
}
}
if(finish){break;}
if(i==3 && j==4){i =0; j=0}
}
答案 1 :(得分:0)
我会使用递归函数来执行此操作。使用嵌套循环只是可怕,难以阅读,更容易进入无限循环条件:
var ans = 6;
function getInput() {
var user_input = prompt("What is your answer?",0);
if (ans == user_input) {
document.write("Yes, the answer is " + ans + "<br />");
}
else {
getInput();
}
}
getInput();
如果你想在每次循环时改变ans
,你可以添加随机数逻辑来设置答案:
var ans = Math.floor(Math.random() * 6) + 1;