存储随机数和分数

时间:2017-11-30 07:30:33

标签: java arrays loops if-statement random

我刚刚开始编程几天。 我想询问用户不同的问题,如果他们输入正确的问题,那么我会给他们5分的评分以获得正确的问题,加上使用随机给出的奖励分数,然后添加此奖金(随机)总分(得分(5)+随机),存储并用于添加下一个问题的下一个得分,并且该过程重复所有问题[5]。 这是我到目前为止所做的,但它会为每个问题打印相同的结果,我想继续添加到之前的分数。

0xffffffffffffffff

1 个答案:

答案 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次尝试来获得正确的答案,但这就是内部循环似乎正在做的事情,因此错误猜测的消息似乎不合适。