Ваш метод ask(String question)
рассматривает вариант «A» (правильный ответ в вашем случае) и все другие возможности, кроме (B, C, D и E). Почему? Потому что в вашем операторе if вы говорите, что должны сделать это:
//This means in case we have all other answers except A (according to the
//condition in the if), B, C, D and E
else if(!answer.equals("B") && !answer.equals("C") && !answer.equals("D") &&
!answer.equals("E")) {
JOptionPane.showMessageDialog(null,"Invalid answer. Please enter A, B, C, D,
or E.");
}
Вы должны добавить else
, чтобы завершить его, а затем охватить все параметры:
if (answer.equals("A")) {
//Case we choose A
return "A";
}else if(!answer.equals("B") && !answer.equals("C") && !answer.equals("D") &&
!answer.equals("E")) {
//All other options
JOptionPane.showMessageDialog(null,"Invalid answer. Please enter A, B, C, D,
or E.");
}else{
//Case we choose B, C, D or E
//As the return is different from the correct answer
//The message "Incorrect. The correct answer is A." should appear
return "Incorrect answer";
}