“线程中的异常”;“主要”;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];