我正在创建一个程序,其中用户(教师)输入一组百分比等级,并对这些等级进行分析,并且outputBox打印出平均值,最小值/最大值,范围以及等级数量。 R','1级','2级'等等。
我面临的问题是将成绩分为不同级别的方法。 当我尝试将我的数组返回到main方法,并尝试将其打印到我的输出时,我得到一个数组错误,说“找不到符号”
import java.util.Arrays.*;
public Integer[] Levels(){
Integer[] levelCount = {0,0,0,0,0};
int mark = Integer.parseInt(markInput.getText());
int i;
for (i=0; i<levelCount.length;i++ )
{
if (mark <50){
levelCount[0] = levelCount[0]+1;
}
else if ((mark >= 50) && (mark <60)){
levelCount[1] = levelCount[1]+1;
}
else if ((mark >=60) && (mark<70)){
levelCount[2] = levelCount[2]+1;
}
else if ((mark >=70)&&(mark<80)){
levelCount[3] = levelCount[3]+1;
}
else if ((mark >=80) && (mark<=100)){
levelCount[4] = levelCount[4]+1;
}
}
return levelCount;
所以,当我转到我的main方法打印出所有信息时,我应该把levelCount
数组放到另一个数组中,我做了。这就是我所拥有的:
String [] level = {"\nNumber at Level R: " + Levels(levelCount[0]),
"\nNumber at Level 1: " +Levels(levelCount[1]),
"\nNumber at Level 2: " + Levels(levelCount[2]),
"\nNumber at Level 3: " + Levels(levelCount[3]),
"\nNumber at Level 4: " + Levels(levelCount[4])};
所以我的困境是阵列levelCount
显示错误'cannot find symbol'
。
无论我尝试什么,我都会继续犯这个错误。
我觉得答案非常明显,但我在网上搜索了一些可以帮助我解决这个问题的东西,似乎什么都没有用,我一直都会遇到同样的错误。
答案 0 :(得分:2)
将第Integer[] levelCount = {0,0,0,0,0};
行更改为
Integer[] levelCount = {0,0,0,0,0,0};
或删除levelCount[5] = levelCount[5]+1;
在上面一行中,您尝试读取6th
(索引5)元素,但声明的数组大小为5(即最大索引4)
答案 1 :(得分:0)
你的方法Levels不带任何参数,所以当你尝试在main方法中创建String数组时,那将无法编译。您的Levels方法也返回String []。尝试更改方法的使用,如下所示:
int[] levelCount = Levels();
String [] level = {"\nNumber at Level R: " + levelCount[0],
"\nNumber at Level 1: " + levelCount[1],
"\nNumber at Level 2: " + levelCount[2],
"\nNumber at Level 3: " + levelCount[3],
"\nNumber at Level 4: " + levelCount[4]};
按照Asfab的建议将数组更改为int或Integer。