-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

是的!事实上,你的编译错误会告诉你发生了什么。阅读并修复导致问题的行。

其次,我建议使用 IDE,例如 Eclipse。它会在您的问题下方添加一条红色波浪线。

于 2013-03-15T19:47:06.717 回答
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;
    }

(你有多余的 {)

它抱怨的原因有两个:

  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 回答
0

您的else声明不属于任何if. 我想这也是编译器所说的。

这是它的样子:

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

我认为您需要阅读有关if 语句的内容。

于 2013-03-15T19:56:19.447 回答