首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lab3.Lab3.readTestScore(Lab3.java:93) lab3.Lab3.main(Lab3.java:25)线程java.lang.ArrayIndexOutOfBoundsException: 0异常

lab3.Lab3.readTestScore(Lab3.java:93) lab3.Lab3.main(Lab3.java:25)线程java.lang.ArrayIndexOutOfBoundsException: 0异常
EN

Stack Overflow用户
提问于 2015-09-22 14:42:56
回答 1查看 82关注 0票数 0
代码语言:javascript
复制
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);
    }   
}
EN

回答 1

Stack Overflow用户

发布于 2015-09-22 14:46:46

因为这个原因

代码语言:javascript
复制
static int n;
static double testScores[] = new double[n];

数组被设置为默认大小int ie 0,这会在方法中给出错误

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32710099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档