我刚刚开始编程几天。 我想询问用户不同的问题,如果他们输入正确的问题,那么我会给他们5分的评分以获得正确的问题,加上使用随机给出的奖励分数,然后添加此奖金(随机)总分(得分(5)+随机),存储并用于添加下一个问题的下一个得分,并且该过程重复所有问题[5]。 这是我到目前为止所做的,但它会为每个问题打印相同的结果,我想继续添加到之前的分数。
0xffffffffffffffff
答案 0 :(得分:0)
您需要在循环外维持分数。您可以在所有问题后打印totalScore,并获得所有正确答案的总分。
int totalScore = 0;
for (int n = 0; n < QArray.length; n++) {
System.out.println("Question" + (n + 1));
System.out.println(QArray[n]);
for (int m = 0; m < 3; m++) {
String ans = scanner.nextLine();
Random dice = new Random();
int t = dice.nextInt(9) + 1;
int scoremarks = 5;
if (ans.equalsIgnoreCase(AArray[n])) {
totalScore += (scoremarks + t);
System.out.println("That is correct!\nYour score is:" + scoremarks + "\nWith bonus your total score is:" + (scoremarks + t));
// correct = false;
break;
} else {
System.out.println("That is incorrect!\nYou got 0 Marks\nYour score is 0!");
}
}
}
评论中提到了一些优化:
int totalScore = 0;
Random dice = new Random();
int scoremarks = 5;
for (int n = 0; n < QArray.length; n++) {
System.out.println("Question" + (n + 1));
System.out.println(QArray[n]);
for (int m = 0; m < 3; m++) {
String ans = scanner.nextLine();
int t = dice.nextInt(9) + 1;
if (ans.equalsIgnoreCase(AArray[n])) {
totalScore += (scoremarks + t);
System.out.println("That is correct!\nYour score is:" + scoremarks + "\nWith bonus your total score is:" + (scoremarks + t));
break;
} else {
System.out.println("That is incorrect!\nYou got 0 Marks\nYour score is 0!");
}
}
}
您可以在答案正确的条件下打印totalScore,以便在每次答案正确时看到分数增加。同样,对于答案不正确的情况,您仍然可以显示总分,以查看您之前的问题可能有多少分。不确定是否有3次尝试来获得正确的答案,但这就是内部循环似乎正在做的事情,因此错误猜测的消息似乎不合适。