我正在编写一个对驾驶考试进行评分的程序,但我无法将正确答案与用户输入答案进行比较。在我的第二个方法保持返回整数1为" **不正确的答案:1"当它应该是5.我故意使最后5个问题不正确测试。我不确定这里发生了什么以及我做错了什么。非常感谢,不胜感激!
import java.util.Scanner;
public class DriverTest
{
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
final int NUMBER_QUESTIONS = 20;
char[] correct = {'A','A','A','A','A',
'B','B','B','B','B',
'C','C','C','C','C',
'D','D','D','D','D'};
char[] student = new char[NUMBER_QUESTIONS + 1];
System.out.println("Enter your answers to the exam questions.");
for(int i = 1; i <= NUMBER_QUESTIONS; i++)
{
System.out.print("Question " + i + ": ");
student[i] = kb.nextLine().toUpperCase().charAt(0);
}
System.out.println("** Incorrect answers: " + gradeExam(correct,student));
}
public static int gradeExam(char[] correct, char[] student)
{
for (int i = 0; i < correct.length; i++)
{
if(correct[i] != student[i])
{
i++;
return 1;
}
}
return 0;
}
}
答案 0 :(得分:1)
你的函数'gradeExam'将在第一个错误答案终止并返回1,这就是'return'的作用。
您需要计算错误的答案,然后返回该值。更确切地说:
int num_of_wrong_answers = 0;
if(correct[i] != student[i])
{
num_of_wrong_answers ++;
}
return num_of_wrong_answers;
您需要计算错误答案的数量,并且只有在函数的结束时才应调用返回。