-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]使用していないことに注意してください。k2 次元配列しかないのに、なぜ 3 レベルのループが必要だと思うのかは不明です1

基本的に、ループの境界とのすべてのアクセスを再検討する必要fieldがあります。


1はい、これは単なる配列の配列であることはわかっています。ポイントは、配列の配列の配列ではないということです。

于 2012-10-10T18:26:26.907 に答える