Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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.lang.ArrayIndexOutOfBoundsException:0位于lab3.lab3.readTestScore(lab3.java:93)位于lab3.lab3.main(lab3.java:25) lab3包装; 导入java.util.Scanner; 公共类Lab3 { 静态int n; 静态双测试分数[]=新双[n]; 公共静态void main(字符串[]args) { 扫描仪输入=新扫描仪(System.in); 国际学生; System.out.println(“输入学生ID:”); studentID=input.nextInt(); System.out.println(“输入测试分数的数量”); n=input.nextInt(); readTestScore(n); //double[]testarray=readTestScore(n); //System.out.println(“测试分数为:“+testarray”); } 公共字符getLetterGrade(双倍分数) { 字符字母; 如果(分数>=90) { 打印评论(“A”); 字母='A'; } 如果(分数>=80) { 打印注释('B'); 字母='B'; } 如果(分数>=70) { 打印注释('D'); 字母='C'; } 否则如果(分数>=60) { 打印注释('D'); 字母='D'; } 否则如果(分数_Java_Arrays - Fatal编程技术网

“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:0位于lab3.lab3.readTestScore(lab3.java:93)位于lab3.lab3.main(lab3.java:25) lab3包装; 导入java.util.Scanner; 公共类Lab3 { 静态int n; 静态双测试分数[]=新双[n]; 公共静态void main(字符串[]args) { 扫描仪输入=新扫描仪(System.in); 国际学生; System.out.println(“输入学生ID:”); studentID=input.nextInt(); System.out.println(“输入测试分数的数量”); n=input.nextInt(); readTestScore(n); //double[]testarray=readTestScore(n); //System.out.println(“测试分数为:“+testarray”); } 公共字符getLetterGrade(双倍分数) { 字符字母; 如果(分数>=90) { 打印评论(“A”); 字母='A'; } 如果(分数>=80) { 打印注释('B'); 字母='B'; } 如果(分数>=70) { 打印注释('D'); 字母='C'; } 否则如果(分数>=60) { 打印注释('D'); 字母='D'; } 否则如果(分数

“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:0位于lab3.lab3.readTestScore(lab3.java:93)位于lab3.lab3.main(lab3.java:25) lab3包装; 导入java.util.Scanner; 公共类Lab3 { 静态int n; 静态双测试分数[]=新双[n]; 公共静态void main(字符串[]args) { 扫描仪输入=新扫描仪(System.in); 国际学生; System.out.println(“输入学生ID:”); studentID=input.nextInt(); System.out.println(“输入测试分数的数量”); n=input.nextInt(); readTestScore(n); //double[]testarray=readTestScore(n); //System.out.println(“测试分数为:“+testarray”); } 公共字符getLetterGrade(双倍分数) { 字符字母; 如果(分数>=90) { 打印评论(“A”); 字母='A'; } 如果(分数>=80) { 打印注释('B'); 字母='B'; } 如果(分数>=70) { 打印注释('D'); 字母='C'; } 否则如果(分数>=60) { 打印注释('D'); 字母='D'; } 否则如果(分数,java,arrays,Java,Arrays,,因为 package lab3; import java.util.Scanner; public class Lab3 { static int n; static double testScores[] = new double[n]; public static void main(String[] args) { Scanner input = new Scanner(System.in); int student

,因为

package lab3;


import java.util.Scanner;

public class Lab3 
{

    static int n;
    static double testScores[] = new double[n];
    public static void main(String[] args) 
    {
       Scanner input = new Scanner(System.in);
       int studentID;

       System.out.println("Enter student ID: ");
       studentID = input.nextInt();
       System.out.println("Enter number of test scores");
       n = input.nextInt();

       readTestScore(n);

      //double[] testarray = readTestScore(n);
      //System.out.println("Test Scores are:" + testarray);

    }
    public char getLetterGrade(double score)
    {
        char letter;
        if(score >= 90)
        {
            printComment('A');
            letter = 'A';
        }
        if(score >= 80)
        {
            printComment('B');
            letter = 'B';
        }   
        if(score >= 70)
        {
            printComment('D'); 
            letter = 'C';
        }   
        else if(score >= 60)
        {
            printComment('D');
            letter = 'D';
        }
        else if(score < 60)
            printComment('F');
            letter = 'F';

        return letter;
    }
    static void printComment(char grade)
    {
        if(grade == 'A')
        System.out.println("COMMMENT\t\t\t:\t" + "Very Good!");
        if(grade == 'B')
        System.out.println("COMMMENT\t\t\t:\t" + "Good!");
        if(grade == 'C')
        System.out.println("COMMMENT\t\t\t:\t" + "Satisfactory.");
        if(grade == 'D')
        System.out.println("COMMMENT\t\t\t:\t" + "Needs Improvement.");
        if(grade == 'F')
        System.out.println("COMMMENT\t\t\t:\t" + "Poor.");


    }
    static void printTestResults(double []testList)
    {

     for(int i = 0; i < testList.length; i++)
     {

         System.out.println("Test Score\t\t\t" + "Letter Grade\t\t\t" + "Comment\t\t\t");
        System.out.println(testScores[i] + "\t\t\t" );//+ getLetterGrade(score) + "\t\t\t" + printComment(grade));

     }  
    }
    static double[] readTestScore(int size)
    {
        Scanner input = new Scanner(System.in);

        int i =0;
        System.out.println("Enter Test Scores:\t");
        for(i = 0; i<n; i++)
        {
        testScores[i] = input.nextDouble();
        }
       testScores[i] /=n;
       System.out.println("these are test scores: " + testScores);
        return (testScores);
    }   
}

数组被设置为int ie 0的默认大小,给您提供了方法中的错误

需要帮助理解我为什么会收到此错误消息。尝试将初始化为null或零的任何内容取出。那么?问题是什么?这是您在尝试访问空数组的第一个元素时得到的结果。我尝试运行该程序,并且当它被删除时要读取TestScores();我输入n,这是我要输入的测试分数数。但一旦进入函数,它就会给出上面的错误。singhakash已经提供了一个指出错误的响应。您声明了一个包含0个元素的数组,并且正在尝试访问它的第一个元素。Quick catch-您击败了我:)@andrescasado定义其在method@alfasin这还不到你过去打败我次数的1%:@singhakash我诚挚的道歉:)我会再次投票作为补偿,但我已经这样做了,因为…这是一个好的快速捕获:))测试分数=新的双[(int)大小];我试着在readTestScores内部初始化这个。这是你的意思吗?
static int n;
static double testScores[] = new double[n];