我只是想知道我是否可以请一些帮助来尝试修复这个公共布尔方法,我无法编译这个代码,请有人告诉我哪里出错了?感谢
//这是正确编译的方法,但是下一个布尔方法与此方法相反,发生错误。
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
}
}
答案 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;
}
(你有多余的{)
抱怨的原因有两个:
任何在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 :(得分:0)
您的else
声明不属于任何if
。我想这也是编译器所说的。
以下是它的样子:
if (areIndexesValid(thisCol, thisRow)) {
return is_hidden[thisCol][thisRow];
} else
return false;
我认为您需要阅读有关if statement的内容。