-1

この公開ブール値メソッドを修正する際に助けをいただけないかと思っていたのですが、このコードをコンパイルできません。どこが間違っているのか誰か教えてください。ありがとう

//これは、以前は正しくコンパイルされていたメソッドですが、次のブール値メソッドはこのメソッドの反対であり、エラーが発生します。

public void uncover(int thisCol, int thisRow) {
    if (areIndexesValid(thisCol, thisRow)) {
        is_hidden[thisCol][thisRow] = false;
    }
}

//これは修正が必要なブール値です。

public boolean isCovered(int thisCol, int thisRow) {
        // TODO check the indexes.  If not valid, then return false else      return
        if (areIndexesValid(thisCol, thisRow)) {
        return is_hidden[thisCol][thisRow]  
        else 
        return false
    }

}

4

4 に答える 4

2

私はこのようにそれを好む:

public boolean isCovered(int thisCol, int thisRow) {
    return areIndexesValid(thisCol, thisRow) && is_hidden[thisCol][thisRow]; 
}
于 2013-03-15T19:58:21.003 に答える
0

はい!実際、コンパイル エラーは何が起こっているかを教えてくれます。それを読んで、問題の原因となっている行を修正してください。

次に、Eclipse などの IDE を使用することをお勧めします。問題の下に赤い波線が表示されます。

于 2013-03-15T19:47:06.717 に答える
0

あなたのelse声明は、どの にも属していませんif。これもコンパイラが言ったことだと思います。

これは次のようになります。

if (areIndexesValid(thisCol, thisRow)) {
    return is_hidden[thisCol][thisRow];
} else 
    return false;

if ステートメントについて何か読む必要があると思います。

于 2013-03-15T19:56:19.447 に答える
0
 public boolean isCovered(int thisCol, int thisRow) {
        // TODO check the indexes.  If not valid, then return false else      return
        if (areIndexesValid(thisCol, thisRow)) 
            return is_hidden[thisCol][thisRow] ; 
        else 
            return false;
    }

(余分な { がありました)

それが不平を言っていた理由は2つあります。

  1. あなたの構文は間違っています
  2. Java で値を返すメソッドは、すべてのパスで値を返さなければなりません。このコード

    public boolean isCovered(int thisCol, int thisRow) {
    
        // TODO check the indexes.  If not valid, then return false else      return
        if (areIndexesValid(thisCol, thisRow)) 
           return is_hidden[thisCol][thisRow] ; 
    
    }
    

構文エラーも返します。

于 2013-03-15T19:53:36.167 に答える