-2

当我尝试使用此方法时,我收到标题中的消息,但我找不到原因。谁能帮助我?

谢谢!

void companyInfo() {
    int tel = 0;
    System.out.print("Name of company: ");
    String tmpCompany = sc.next();
    for (int i = 0; i < tel; i++){
        if (tmpCompany.equals(null)){
        }
    }
    for (int i = 0; i < 10; i++) {
        int count = 0;
        for (int j = 0; j < field.length; j++){
            for (int k = 0; k < field[k].length; k++){
                if (tmpCompany != (null) && field[i][j] != 0 && tmpCompany.equals(felt[i][j])){
                    count++;
                }
            }
        }
        if (tmpCompany != null && count > 0) {
            System.out.print("The company " + tmpCompany + " owns " + count + " field(s).");
        }
    }
}​
4

3 回答 3

1

我不完全确定,你的数组中有什么,因为我看到这样的一行:

for (int k = 0; k < field[k].length; k++)

字段[k]。但是您会收到错误,因为您尝试在长度小于 10 的数组中查找索引 10。

于 2012-10-10T18:25:45.817 回答
0

在你的if情况下,不应该field[j][k]如下:

 if (tmpCompany != (null) && field[j][k] != 0 && tmpCompany.equals(field[j][k])){
于 2012-10-10T18:27:18.907 回答
0

这个:

for (int k = 0; k < field[k].length; k++)

几乎可以肯定是:

for (int k = 0; k < field[j].length; k++)

尽管您随后field[i][j]在循环体内使用,但这似乎不太可能是您想要的。我注意到您根本没有k在循环中使用。当你只有一个二维数组1时,你为什么认为你需要三层循环还不清楚。

基本上,你应该重新审视你的循环边界和每一次访问field,从它的外观来看。


1是的,我知道它实际上只是一个数组数组。关键是它不是数组数组的数组。

于 2012-10-10T18:26:26.907 回答