Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用顺序搜索算法进行字符数组比较?_Java_Arrays_Char_Comparison - Fatal编程技术网

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

Java 使用顺序搜索算法进行字符数组比较?,java,arrays,char,comparison,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

我正在编写一个为驾驶考试打分的程序,但在将正确答案与用户输入答案进行比较时遇到了问题。在我的第二个方法中,当“**错误答案: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;
  }
}
import java.util.Scanner;
公共类驱动程序测试
{
公共静态void main(字符串[]args)
{
扫描仪kb=新扫描仪(System.in);
最终整数问题=20;
char[]correct={'A','A','A','A','A',
‘B’、‘B’、‘B’、‘B’、‘B’、‘B’,
"C","C","C","C","C",,
‘D’、‘D’、‘D’、‘D’、‘D’};
char[]学生=新char[NUMBER_问题+1];
System.out.println(“输入您对考试问题的答案”);

对于(int i=1;i您的函数“gradeExam”将在第一个错误答案时终止,并返回1,这就是“return”的作用

您需要计算错误答案,然后返回该值。而不是:

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

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

谢谢!这帮了大忙,但是它仍然给了我错误的数字。现在它给了我8而不是5。请注意我原始答案中的小编辑。在如果。请尝试将答案硬编码到代码中(就像您编码的“correct”),这样您就不必每次都键入答案。如果答案仍然存在,请显示该代码。此外,如果您有Eclipse之类的IDE,您可以在“gradeExam”函数中设置断点,以查看到底发生了什么。