Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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_For Loop - Fatal编程技术网

Java 为什么我的阵列不能按预期工作?

Java 为什么我的阵列不能按预期工作?,java,arrays,for-loop,Java,Arrays,For Loop,由于代码中的最后一个差异,我无法提交作业。我花了几个小时试图解决这个问题 我的代码选取20个测试答案,这些答案可以是“A”、“B”、“C”或“D”,然后告诉您是通过了(>=15个正确答案)还是失败了,有多少是对的,有多少是错的。之后,它会告诉你那些你弄错的问题编号 但是,只有前几个数字实际记录到我使用的数组中,而最后5个数字没有记录到(不管有多少错误,它总是最后5个数字)。奇怪的是,我使用for循环将值读入数组,所以不应该存在差异。如果有,它很可能会给我一个数组索引outofboundsepti

由于代码中的最后一个差异,我无法提交作业。我花了几个小时试图解决这个问题

我的代码选取20个测试答案,这些答案可以是“A”、“B”、“C”或“D”,然后告诉您是通过了(>=15个正确答案)还是失败了,有多少是对的,有多少是错的。之后,它会告诉你那些你弄错的问题编号

但是,只有前几个数字实际记录到我使用的数组中,而最后5个数字没有记录到(不管有多少错误,它总是最后5个数字)。奇怪的是,我使用
for
循环将值读入数组,所以不应该存在差异。如果有,它很可能会给我一个
数组索引outofboundseption

这是代码,有一个问题方法的注释(从第81行开始):

import java.util.Scanner;
公共类ch7{
私有静态字符[]更正={
‘B’、‘D’、‘A’、‘A’、‘C’、‘A’、‘B’、‘A’,
‘C’、‘D’、‘B’、‘C’、‘D’、‘A’、‘D’、‘C’,
‘C’、‘B’、‘D’、‘A’};
公共静态void main(字符串[]args){
扫描仪kb=新扫描仪(System.in);
布尔传递;
char[]answers=新字符[20];
对于(int x=0;x不正确?真:假;
}
公共静态整数totalCorrect(char[]ans){
int correct=0;
对于(int x=0;x
有一个简单的错误……你可以自己找出为什么会这样

提示:检查for循环中的条件

    public static int[] questionsMissed(char[] ans) { 
        int nMissed = totalIncorrect(ans);
        int[] missedQuestions = new int[nMissed];
        int i = 0;
        for(int x = 0; x <ans.length; x++) {
            if(ans[x] != correctAns[x]) {
                    missedQuestions[i] = x + 1;
                    i++;
            }
        }
        return missedQuestions;
    }
publicstaticint[]问题已处理(char[]ans){
int nMissed=总不正确(ans);
int[]missedQuestions=新int[nMissed];
int i=0;

对于(int x=0;x您没有在调试器下一步一步地运行代码的原因是什么?为什么循环基于
TotalError
?您为什么只是在第81行粘贴一个错误的完整代码?@GalAbra我认为完整的代码对于理解该方法的功能是必要的。我本可以发布ju测试该方法,但您不知道该方法做了什么或它调用了什么其他方法。如果您不知道如何使用调试器,请在
someVariable
的可疑行为之后添加
System.out.println(//someVariable//)
。。。
    public static int[] questionsMissed(char[] ans) { 
        int nMissed = totalIncorrect(ans);
        int[] missedQuestions = new int[nMissed];
        int i = 0;
        for(int x = 0; x <ans.length; x++) {
            if(ans[x] != correctAns[x]) {
                    missedQuestions[i] = x + 1;
                    i++;
            }
        }
        return missedQuestions;
    }