Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

post increment inside an if statement

My output is always 10 even though half of my answers are wrong.

package LabExercise;

import java.util.Scanner;
import java.util.InputMismatchException;

public class LabExer5B {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        try {
            
            String[] Questions = new String[10];
            String[] Choice = new String[10];
            Questions[0] = "1. What is the biggest island in the Philippines?";
            Questions[1] = "2. Jose Rizal's birthday?";
            Questions[2] = "3. Jose Rizal's death anniversary?0";
            Questions[3] = "4. What is the capital of the Philippines?";
            Questions[4] = "5. Festival held in Baguio City every february?";
            Questions[5] = "6. Andres Bonifacio's birthday?";
            Questions[6] = "7. Independence day of Philippines?";
            Questions[7] = "8. How many islands are there in the Philippines?";
            Questions[8] = "9. One of Jose Rizal's famous novel when he was imprisoned?";
            Questions[9] = "10. Writer of Lupang Hinirang?";

            Choice[0] = "A. Luzon \nB. Mindanao \nC. Visayas";
            Choice[1] = "A. June 19 \nB. December 30 \nC. November 2";
            Choice[2] = "A. April 20\nB. December 30 \nC. October 15";
            Choice[3] = "A. Manila City \nB. Taguig City \nC. Quezon City";
            Choice[4] = "A. Mascara Festival \nB. Sinulog \nC. Panagbenga Festival";
            Choice[5] = "A. March 18 \nB. October 28 \nC. November 30";
            Choice[6] = "A. June 12 \nB. October 25 \nC. July 19";
            Choice[7] = "A. 7107 \nB. 7023 \nC. 7192";
            Choice[8] = "A. Noli Me Tangere \nB. Florante at Laura \nC. Ibong Adarna";
            Choice[9] = "A. Sharon Cuneta \nB. Julian Felipe \nC. Rico Puno";
            
          
            String[] Answers = {"A", "A", "B", "A", "C", "C", "A", "A", "A", "B"};
            String[] Letter = new String[10];
            boolean CAnswers = false;
            int score = 0;
         
            int j = 0;
            for(int i = 0; i < 10;i++){
                 System.out.println(Questions[i]);
                System.out.println(Choice[i]);
                System.out.println("Enter your answer: ");
              
                Letter[j] = input.nextLine();
                if (Letter[j].equalsIgnoreCase(Answers[j])){
                    score++;
                }  
            }
            System.out.println("Your score is " + score);
        } catch (InputMismatchException e) {
            System.out.println("Please input a letter");
        }
    }
}

I think it is not reading my if statement, do I need to change the if statement?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Why do you have i and j? You only change i, j stays 0 forever and therefore you always compare the first entry of Answers, an "A".

Solution: remove the j and replace where it was used with an i.

Optionally: remove Letter as an array entirely and just have a single String givenAnswer = input.nextLine(); in the loop.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading