当我返回一个数组时,我得到一个“找不到符号”的错误

时间:2013-12-30 19:57:22

标签: java arrays return output

我正在创建一个程序,其中用户(教师)输入一组百分比等级,并对这些等级进行分析,并且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'。 无论我尝试什么,我都会继续犯这个错误。

我觉得答案非常明显,但我在网上搜索了一些可以帮助我解决这个问题的东西,似乎什么都没有用,我一直都会遇到同样的错误。

2 个答案:

答案 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。