Основным источником моих проблем является мой метод «add», массив «mathAnswers» и счетчик «Score».
Я пытаюсь сравнить значения массива, заставить их выполнять математическую функцию , а затем проверьте, соответствует ли введенный пользователем ответ. Я также хочу, чтобы правильный ответ был добавлен в массив, а затем распечатал этот массив вместе со счетчиком, проверяющим счет пользователей.
Я столкнулся с проблемой, когда мой счетчик не увеличивается, мои значения не вводятся в мой массив, и все остается 0. Вот мой код.
import java.util.Scanner;
import java.util.ArrayList;
public class Program7 {
public static void main(String[] args) {
int [] mathQuizLeft = {
8, //0
14, //1
16, //2
8, //3
17, //4
5, //5
27, //6
4, //7
20, //8
13, //9
};
int [] mathQuizRight = {
13, //0
12, //1
4, //2
18, //3
4, //4
4, //5
9, //6
7, //7
4, //8
4, //9
};
Scanner scanner = new Scanner(System.in);
double userAns = 0;
double answer = 6;
System.out.println("Welcome to the 3rd Grade Math Quiz. \n");
System.out.println("The Quiz begins now: \n"
+ "1. 8 - 13\n2. 14 + 12\n3. 16 / 4\n4. 8 + 18\n5. 17 % 4\n6. 5 x 4\n"
+ "7. 27 / 9\n8. 4 - 7\n9. 20 x 4\n10. 13 - 4");
for(int i = 0; i <= 10; i++) {
if (i < 10) {
System.out.printf("%d. ", (i + 1));
userAns = Double.valueOf(scanner.nextDouble());
add(mathQuizLeft, mathQuizRight, i, answer, userAns);
}
else {
add(mathQuizLeft, mathQuizRight, i, answer, userAns);
}
}
}
public static void add(int[] array1, int[] array2, int i, double answer, double userAns) {
ArrayList<Integer> mathAnswers = new ArrayList<>(); //for storing functions
int score = 0;
if (i == 1 || i == 3) { //addition
answer = array1[i] + array2[i];
if (userAns == answer) {
score++;
mathAnswers.add(i);
}
} else if (i == 0 || i == 7 || i == 9) { //subtraction
answer = array1[i] - array2[i];
if (userAns == answer) {
score++;
mathAnswers.add(i);
}
} else if (i == 5 || i == 8) { //multiplication
answer = array1[i] - array2[i];
if (userAns == answer) {
score++;
mathAnswers.add(i);
}
} else if (i == 2 || i == 6) { //multiplication
answer = array1[i] - array2[i];
if (userAns == answer) {
score++;
mathAnswers.add(i);
}
} else if (i == 4) { //multiplication
answer = array1[i] - array2[i];
if (userAns == answer) {
score++;
mathAnswers.add(i);
}
} else if (i == 10) {
for (double array: mathAnswers) {
System.out.println(array);
}
System.out.println(score);
}
}
}