java - 使用顺序搜索算法进行字符数组比较?

标签 java arrays char comparison

我正在编写一个对驾驶考试进行评分的程序,但我无法将正确答案与用户输入答案进行比较。在我的第二种方法中,当“**错误答案:1”应该是 5 时,它不断返回整数 1。我故意让最后 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;
  }
}

最佳答案

您的函数“gradeExam”将在第一个错误答案时终止并返回 1,这就是“return”的作用。

您需要计算错误答案的数量,然后返回该值。相反:

int num_of_wrong_answers = 0;
if(correct[i] != student[i])
{
    num_of_wrong_answers ++;
}
return num_of_wrong_answers;

您需要计算错误答案的数量,并且只有在函数的末尾才应该调用return

关于java - 使用顺序搜索算法进行字符数组比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50601348/

相关文章:

arrays - swift 2 : cannot cast value of type NSArray toNSString Dictionary?

java - 将 double 组转换为 double ArrayList

c - 将字符串分配给结构中的 char 值

c - 如何在C中对单个字符执行scanf

java - 在二叉搜索树中声明学生名册时出现 ExceptionInInitialize 错误

java - 定时java循环

java - 使用php将数据从android插入mysql失败

java - 如何从 parseJson 获取 ListView 数据

c++ - 如何在不强制转换的情况下循环遍历小写字符?

java - 为什么这个应该选择一些随机行的 Hibernate HQL 查询不起作用?我获得了 "QuerySyntaxException: unexpected token"