so ill just go directly to my problems. So my InputMismatchException won't work. Instead the one working is the exception i manually made from the other class called InvalidLetterException. If I enter a number the exception doing the catch is the InvalidLetterException instead of the InputMismatchException because im entering an integer, a different data type. I'm hinting theres a problem with my if else statement but i dont know what to do.
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String questions[] = {"What is the color of the sky? ", "What is 1 + 1? ",
"What is the capital of the Philippines? ", "Who is the current president of the Philippines? ",
"What is the capital of Japan? ", "What is 2 + 3? ",
"What is 9 + 1?", "What is the capital of the United States? ",
"What is 10 + 10? ", "How many hand fingers do humans have? "};
String choices[] = {"a","b","c"};
int x = 0;
int y = 0;
try {
while(x<=9) {
System.out.println("No." + (x+1) + "." + questions[x]);
String answer = scan.next();
x++;
if(answer.equals(choices[0])) {
scan.nextLine();
} else if (answer.equals(choices[1])) {
scan.nextLine();
} else if (answer.equals(choices[2])) {
scan.nextLine();
} else if (!answer.equals(choices)) {
throw new InvalidLetterException();
}
}
} catch(InvalidLetterException e) {
System.out.println(e.getMessage());
System.out.println(); //Spacing
System.out.println("You can try again.");
System.out.println(); //Spacing
do {
System.out.println("No." + (y+1) + "." + questions[y]);
scan.next();
y++;
}while(y<=9);
} catch (InputMismatchException i) {
System.out.println("Please don't enter numbers.");
}
}