gpt4 book ai didi

java - 编写一个程序,将用户的输入作为数组进行比较,并使用 while 循环将其与另一个数组进行比较以检查正确答案

转载 作者:行者123 更新时间:2023-12-01 21:58:14 26 4
gpt4 key购买 nike

这可能是一个真正的新手问题,但我无法找到不使用 for 循环就可以回答的答案。我有一个数组设置为常量,其中包含测试的正确答案。该程序接收用户输入,然后将其与常量数组进行比较并计算正确答案的数量。我不必导入任何库,并且应该使用 while 循环完成该方法。我想通过 ANSWER 常量迭代用户输入,并为所有正确答案创建计数。这是我的类(class)的片段(为了简单起见,我排除了提示用户答案的​​方法)。\

public class DriverExam{
public static final char[] ANSWER = {'B','D','A','A','C','A','B','A','C','D','B','C','D','A','D','C','C','B','D','A',};
private char[] driversAnswers;
InputReader reader;

public DriverExam(){
reader = new InputReader();
driversAnswers = new char[20];

}
public int getTotalCorrectAnswers(){
int correct = 0;
int index = 0;
while (index < ANSWER.length){
index++;
if(driversAnswers.equals(ANSWER)){
correct++;
}
System.out.println(index);
System.out.println(correct);
}
return correct;

这个问题很可能与 if 语句有关,但我似乎找不到一种方法来迭代数组索引并将它们与另一个数组进行比较。

编辑:我当前的方法如下所示:

 public int getTotalCorrectAnswers(){
int correctAnswer = 0;
int index = 0;
while(index < ANSWER.length){
if(ANSWER[index]==driversAnswers[index]){
correctAnswer++;
index++;
}
// System.out.println(index);
System.out.println(correctAnswer);

}
return correctAnswer;

经过几次尝试,我得到了一些实际计数,但似乎一旦遇到不同的值,它就会停止计数器。但就目前情况而言,我的结果值为 0's

最佳答案

正如评论中已经描述的,您不能像这样比较数组。 driverAnswers.equals(ANSWER) 仅比较引用,在这种情况下它将返回 false,因为引用不同。如果您想检查数组是否相等,可以使用 Arrays.equals(arr1, arr2)。在这种情况下,会对数组中的每个元素调用 equals 方法。如果数组中的对象正确重写此方法,此方法将返回所需的结果。

但是,您确实提到不要使用其他库。最简单的解决方案是迭代每个元素并检查是否相等

编辑:因为你不需要 else 情况,所以我在这里做了一些编辑

while(index < ANSWER.length){
if(driverAnswer[index] == ANSWER[index])
correct++
index++
}

关于java - 编写一个程序,将用户的输入作为数组进行比较,并使用 while 循环将其与另一个数组进行比较以检查正确答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58723287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com