В методах totalCorrect () и totalIncorrect () я установил аккумулятор var для подсчета количества правильных или неправильных вопросов.По какой-то причине он не будет увеличиваться должным образом.Программа говорит, что пользователь получил 24 или 40 правильных и неправильных ... почему он не будет увеличиваться должным образом?
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class driverExam {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Driver's Test. Input your answers for the following
10 Q's. ");
System.out.println();
String[] testAnswers = {"B","D","A","A","C","A","B","A","C","D"};
int uT = testAnswers.length;
String[] userAnswers = new String[uT];
int i =0;
while(i<uT) {
System.out.print("Question #"+(i+1)+": ");
String userInput = in.nextLine();
userInput = userInput.toUpperCase();
if (userInput.equals("A")|| userInput.equals("B")||
userInput.equals("C")
|| userInput.equals("D")) {
userAnswers[i] = userInput;
i++;
}else {
System.out.println("Enter again: ");
}
}
System.out.println("Here are the results.");
int qRight = totalCorrect(userAnswers,testAnswers);
System.out.println("Total Correct: "+qRight);
int qWrong = totalIncorrect(userAnswers, testAnswers);
System.out.println("Total Incorrect: "+qWrong);
System.out.println(passed(qRight));
}
Я пытаюсь увеличивать var "same", только когда массив находит, чтоСтрока в userAnswers такая же в testAnswers, и та же для var «неправильный» в последнем методе.
/**
* @param user
* @param test
* @return
*/
public static int totalCorrect(String[] user,String[] test) {
int same=0;
for (int r = 0;r<=user.length-1;r++) {
for (int k =0;k<=test.length-1;k++) {
if(user[r].equals(test[k])) {
same++;
}
}
}
return same;
}
/**
* @param user
* @param test
* @return
*/
public static int totalIncorrect(String[] user,String[] test) {
int z=0;
int wrong = 0;
boolean isValid = true;
while (isValid && z<user.length) {
if (user[z]!=test[z]) {
isValid = false;
wrong ++;
z++;
}
}
return wrongQ;
}
/**
* @param numRight
* @return //returns whether student has passed or failed
*/
public static String passed(int numRight) {
int goldenNum = 8;
if (numRight >=goldenNum) {
return ("You passed.");
}else
return ("You have failed.");
}
/**
* @param user
* @param test
* @return
*/
public static int[] questionMissed(String[] user, String[] test) {
//return array which display which questions were missed
}
}