while循环里面for循环,迷茫?
while loop inside for loop, confused?
对编程完全陌生,我正在做一个项目,我对如何让它工作感到困惑。请帮助我
boolean answer1 = true;
for (int i=0;i<q.questionbank.length;++i)
{ q.Question = input(q.questionbank[i]);
while(answer1 == true)
{
if (q.Question.equals(a.correctans) || (q.Question.equals(a.impossibleans) || (q.Question.equals(a.wrongans))))
{
score = printquiz(answer,score,q.Question);
answer1 = false;
}
else
{
print("Not a Valid Answer, please try again\n");
}
}
}
return score;
在这里,我有一个 class 叫做问题库和测验。 correctans/impossibleans/wrongans 是测验数据类型的一部分。而 q.question 是题库的一部分。我对问题库数据类型中的数组有一些疑问。我想使用 for 循环来遍历问题,如果用户输入正确答案,分数就会上升。它适用于第一个问题,但不适用于第二个问题。通常当他们回答正确时,我有另一种方法 printquiz,它有判断语句来告诉用户他们的答案是正确的还是错误的,并给他们打分。但在循环的第一次迭代之后它甚至没有进入该方法。我对发生的事情感到困惑。请帮助我
这就是我的设置方式。假设答案是错误的,直到你得到一个。然后将其设置为 true 以退出循环。
for (int i = 0; i < q.questionbank.length; ++i) {
q.Question = input(q.questionbank[i]);
answer1 = false;
while (!answer1) {
if (q.Question.equals(a.correctans) || (q.Question.equals(a.impossibleans) || (q.Question.equals(a.wrongans)))) {
score = printquiz(answer, score, q.Question);
answer1 = true;
} else {
print("Not a Valid Answer, please try again\n");
}
}
}
第二次无效,因为您将 answer1
设置为 false
并且再也没有将其设置回 true
。因此,在第一次到达 if 语句中的 answer1 = false
代码行后,不再进入 while
循环(= 不再计算为真)。
要解决此问题,请尝试将 answer1 = true
放在 for 循环内,在 while 循环之前。
对编程完全陌生,我正在做一个项目,我对如何让它工作感到困惑。请帮助我
boolean answer1 = true;
for (int i=0;i<q.questionbank.length;++i)
{ q.Question = input(q.questionbank[i]);
while(answer1 == true)
{
if (q.Question.equals(a.correctans) || (q.Question.equals(a.impossibleans) || (q.Question.equals(a.wrongans))))
{
score = printquiz(answer,score,q.Question);
answer1 = false;
}
else
{
print("Not a Valid Answer, please try again\n");
}
}
}
return score;
在这里,我有一个 class 叫做问题库和测验。 correctans/impossibleans/wrongans 是测验数据类型的一部分。而 q.question 是题库的一部分。我对问题库数据类型中的数组有一些疑问。我想使用 for 循环来遍历问题,如果用户输入正确答案,分数就会上升。它适用于第一个问题,但不适用于第二个问题。通常当他们回答正确时,我有另一种方法 printquiz,它有判断语句来告诉用户他们的答案是正确的还是错误的,并给他们打分。但在循环的第一次迭代之后它甚至没有进入该方法。我对发生的事情感到困惑。请帮助我
这就是我的设置方式。假设答案是错误的,直到你得到一个。然后将其设置为 true 以退出循环。
for (int i = 0; i < q.questionbank.length; ++i) {
q.Question = input(q.questionbank[i]);
answer1 = false;
while (!answer1) {
if (q.Question.equals(a.correctans) || (q.Question.equals(a.impossibleans) || (q.Question.equals(a.wrongans)))) {
score = printquiz(answer, score, q.Question);
answer1 = true;
} else {
print("Not a Valid Answer, please try again\n");
}
}
}
第二次无效,因为您将 answer1
设置为 false
并且再也没有将其设置回 true
。因此,在第一次到达 if 语句中的 answer1 = false
代码行后,不再进入 while
循环(= 不再计算为真)。
要解决此问题,请尝试将 answer1 = true
放在 for 循环内,在 while 循环之前。