В настоящее время я работаю над тестом с несколькими вариантами ответов.Но я застрял с этой проблемой.После исключения мой цикл for сбрасывается и в основном возвращается к 0. Есть ли другой способ решить эту проблему?Или мой код логически неверен?Всякий раз, когда выдается исключение, цикл for сбрасывается.Например, у меня вопрос 5, и возникла исключительная ситуация, цикл for возвращается к 0.
do{
try {
Scanner A = new Scanner (System.in);
for (int x = 0; x < Questions.length;x++){
loop = x;
System.out.println(Questions[x]);
System.out.println(Choices[x]);
System.out.println("");
System.out.print("Answer: ");
UAnswer = A.nextLine();
if (UAnswer.equalsIgnoreCase("A") || UAnswer.equalsIgnoreCase("B") || UAnswer.equalsIgnoreCase("C")){
if (UAnswer.equalsIgnoreCase(AnswerKey[x])){
System.out.println("");
System.out.println("Correct Answer!\n");
Score++;
}
else {
System.out.println("");
System.out.println("Wrong! The correct answer is: " + AnswerKey[x] + "\n");
}
}
else if (UAnswer.equalsIgnoreCase("")){
throw new NullPointerException();
}
else {
throw new InputMismatchException();
}
}
}
catch(InputMismatchException ime){
System.out.println("");
System.out.println("Invalid input! Please type A,B,C!\n");
}
catch(NullPointerException b){
System.out.println("");
System.out.println("You did not input any answer.\n");
}
}while(loop != 9);