Я создаю программу, которая является экзаменом, и ответы теста сохраняются в массиве, а ответы пользователя хранятся в отдельном массиве.
Я пытаюсь написать свою программу так, чтобы после каждого вопроса пользовательский ответ загружался в массив, если только он не вводит что-то кроме "A
", "B
", "C
"или "D
".Если они не введут одно из этих значений, вопрос будет задан снова.Я застрял
Вот мой код:
String[] testAnswers = {"B","D","A","A","C","A","B","A","C","D"};
int uT = testAnswers.length;
String[] userAnswers = new String[uT];
for (int i=0; i<uT;i++) {
System.out.print("Question #"+(i+1)+": ");
userAnswers[i] = in.nextLine();
userAnswers[i] = userAnswers[i].toUpperCase();
}
Я попытался создать список массивов, а затем с помощью цикла if снова запросить Q.Дело в том, что я не очень хорошо знаком с ArrayLists.
for (int i=0; i<uT;i++) {
System.out.print("Question #"+(i+1)+": ");
userAnswers[i] = in.nextLine();
userAnswers[i] = userAnswers[i].toUpperCase();
List<String> list = Arrays.asList(userAnswers);
while (!list.contains("A") || !list.contains("B") || !list.contains("C")
|| !list.contains("D")) {
System.out.println("Invalid Input. ");
System.out.print("Question #"+(i+1)+": ");
userAnswers[i] = in.nextLine();
userAnswers[i] = userAnswers[i].toUpperCase();
}
}
Еще одна вещь, которую я пробовал, это использование логической переменной и / или использование цикла do / while, но я просто не могу понятьчто делать.Я думаю, это тот факт, что я поместил userInput
прямо в массив, который нарушает мой код.
boolean isValid = true;
do {
for (int i=0; i<uT;i++) {
System.out.print("Question #"+(i+1)+": ");
isValid = false;
userAnswers[i] = in.nextLine();
userAnswers[i] = userAnswers[i].toUpperCase();
try {
//something here
}
...