简体   繁体   中英

How do i keep track of correct answers?

public static void main(String[] args) {
    Scanner Keyboard = new Scanner(System.in);
    System.out.println("Enter your name: ");
    String firstname =Keyboard.nextLine();
    System.out.println("Welcome "+ firstname+  "!"+ " Please answer the following questions:");
    int x =  (int)(20 * Math.random()) + 1;
    int y =  (int)(20 * Math.random()) + 1;

    int sum = (x+y);
    System.out.println(x + " + " + y + " = ");
    String sInput = Keyboard.nextLine();
    int answer1 = Integer.parseInt(sInput);
    if (answer1 ==sum){
        System.out.println("Correct!");
    }else{
    System.out.println("Wrong!");
    }
    System.out.println("The correct answer is " +sum);

I have no clue on how to keep track of the correct answers. I need something to keep track of when it prints correct. I don't know what to do though. I know I just need to record the corrects and divide by four. Four because thats how many questions I have in my quiz.

If you just need to keep track of how many right answers were provided, just add an int variable starting with 0 as a value and increment it. If you want to keep track of the questions and answers which were right, create an empty ArrayList and add a string every time a correct answer is provided.

Here an example of the second option:

    ArrayList<String> correctAnswers = new ArrayList<String>();
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter your name: ");
    String firstname =keyboard.nextLine();
    System.out.println("Welcome "+ firstname+  "!"+ " Please answer the following questions:");
    for (int i=0;i<10;i++) {
        int x =  (int)(20 * Math.random()) + 1;
        int y =  (int)(20 * Math.random()) + 1;

        int sum = (x+y);
        System.out.println(x + " + " + y + " = ");
        String sInput = keyboard.nextLine();
        int answer1 = Integer.parseInt(sInput);
        if (answer1 ==sum){
            System.out.println("Correct!");
            correctAnswers.add(x + " + " + y + " = " + sum);
        }
        else{
            System.out.println("Wrong!");
            System.out.println("The correct answer is " +sum);     
        }
    }
    System.out.println("Correct answers:");
    for (String correctAnswer : correctAnswers) {
        System.out.println(correctAnswer);
    }

It asks 10 questions, keeps track of the right answers and outputs them after the 10th question.

An example for the first option:

    int correctAnswers=0;
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter your name: ");
    String firstname =keyboard.nextLine();
    System.out.println("Welcome "+ firstname+  "!"+ " Please answer the following questions:");
    int totalAnswers=4;
    for (int i=0;i<totalAnswers;i++) {
        int x =  (int)(20 * Math.random()) + 1;
        int y =  (int)(20 * Math.random()) + 1;

        int sum = (x+y);
        System.out.println(x + " + " + y + " = ");
        String sInput = keyboard.nextLine();
        int answer1 = Integer.parseInt(sInput);
        if (answer1 ==sum){
            System.out.println("Correct!");
            correctAnswers++;
        }
        else{
            System.out.println("Wrong!");
            System.out.println("The correct answer is " +sum);     
        }
    }
    System.out.println("Correct answers: "+ correctAnswers + "("+correctAnswers*100/totalAnswers+"%)");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM