代码编译错误,java中的布尔值?

时间:2013-03-15 19:46:11

标签: java

我只是想知道我是否可以请一些帮助来尝试修复这个公共布尔方法,我无法编译这个代码,请有人告诉我哪里出错了?感谢

//这是正确编译的方法,但是下一个布尔方法与此方法相反,发生错误。

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 个答案:

答案 0 :(得分:2)

我更喜欢这样:

public boolean isCovered(int thisCol, int thisRow) {
    return areIndexesValid(thisCol, thisRow) && is_hidden[thisCol][thisRow]; 
}

答案 1 :(得分:0)

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

其次,我建议使用Eclipse等IDE。它会在你的问题下放一个红色的波浪线。

答案 2 :(得分: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] ; 
    
    }
    
  3. 也会返回语法错误。

答案 3 :(得分:0)

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

以下是它的样子:

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

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