我已经创建了一个if语句,但是在你做对了之前继续问问题是正确的。但是,在我的情况下,这不是一个选项。我已经实现了一个具有最大尝试次数的计数器,如果循环运行3次并且你仍然错了,那么打印"你弄错了#34;然后转到下一个问题。如果他们在3次尝试中做到了正确,那么,请转到下一个问题"得分++就是为了跟踪得分。得分++必须只保留正确答案的分数,这就是为什么它在while(true)之下。如果有人可以帮助我,那将是非常棒的。我愿意以不同的方式改进循环。 谢谢!
这是循环:
int count = 0;
int maxTries = 3;
do {
println(q1.PrintQuestion());
yourAnswer = readLine("Your answer: ");
if ((q1.IsAnswerCorrect(yourAnswer)) && (count < maxTries))
break;
else
println("You got it wrong! \n");
count++;
} while (true);
score++;
println("You got it right! \n");
编辑: 这是我在这里得到答案的工作循环。现在我遇到的问题是,如果答案是正确的,那么在我正确地回答两次之前它不会进入下一个问题,如果我将maxTries设置为3则会变为4次,这就是为什么我减少到2次。如果输入正确,最后一次尝试,我必须回答两次。
int count = 0;
int maxTries = 2;
do {
println(q1.PrintQuestion());
yourAnswer = readLine("Your answer: ");
if ((q1.IsAnswerCorrect(yourAnswer)) || (count >= maxTries))
break;
else
println("You got it wrong! \n");
count++;
} while (true);
score++;
println("You got it right! \n");
答案 0 :(得分:2)
计数需要在循环内而不是外循环增加。此外,您检查是否达到最大值或提供正确答案的条件不正确:
if ((q1.IsAnswerCorrect(yourAnswer)) || (count >= maxTries))
break;
else
println("You got it wrong! \n");
count++;
在提供正确答案或达到maxTries
时将停止。
答案 1 :(得分:0)
您应该在count
循环中增加while
。然后,您的代码可以检测是否已达到最大尝试次数。
一旦达到最大尝试次数,您(大概)也需要退出循环。否则,你会得到一个你无法突破的循环。也就是说,一旦达到最大尝试次数,即使答案正确,循环也不会退出。
如果你将增量分数留在while循环之外,它会在两种情况下都加分,即。答案是正确的或尝试次数用完了。它也应该进入循环内部。
int count = 0;
int maxTries = 3;
do {
println(q1.PrintQuestion());
yourAnswer = readLine("Your answer: ");
if (q1.IsAnswerCorrect(yourAnswer)) {
println("You got it right!\n");
score++;
break;
}
println("You got it wrong!\n");
count++;
if (count > maxtries) {
println("You ran out of tries.\n");
break;
}
} while (true);
答案 2 :(得分:0)
你的计数++需要在循环中。否则你的条件(count&lt; maxTries)正在使用,因为count ++在循环运行时永远不会递增。
int count = 0;
int maxTries = 3;
do {
println(q1.PrintQuestion());
yourAnswer = readLine("Your answer: ");
if ((q1.IsAnswerCorrect(yourAnswer)) && (count < maxTries)) {
break;
}
else {
println("You got it wrong! \n");
}
//count++ inside the loop
count++;
} while (true);
score++;
println("You got it right! \n");
答案 3 :(得分:0)
尝试在循环中插入得分++和计数++行。