Java 布尔数组的getter[][]
我基本上写了一个布尔数组[x][y],x,y是坐标,如果它是真的,那么有炸弹 我和getter之间有麻烦 到目前为止,我已经Java 布尔数组的getter[][],java,project,Java,Project,我基本上写了一个布尔数组[x][y],x,y是坐标,如果它是真的,那么有炸弹 我和getter之间有麻烦 到目前为止,我已经 boolean[][] bombArray = new boolean[Total_Columns][10]; for(x=0,x<Total_Colmns,x++){ bombArray[x][0] = true; } public boolean getBombArray(int x,int y){ if(bombArray[x][y]
boolean[][] bombArray = new boolean[Total_Columns][10];
for(x=0,x<Total_Colmns,x++){
bombArray[x][0] = true;
}
public boolean getBombArray(int x,int y){
if(bombArray[x][y] .equals(true){
return true;
}
else{
return false;
}
}
基本上网格是这样的
main()
boolean isBomb = myPanel.getBombArray(x,y) //x and y being the cursor coordinates
if(isBomb){
....
....
....
....
{
else{
....
....
....
}
*********
.........
.........
.........
.........
.........
.........
.........
.........
但是我的get不起作用,它不断抛出异常这行:
if(bombArray[x][y] .equals(true){
大括号前缺少右括号
函数的正确版本应为:
public boolean getBombArray(int x,int y){
// bombArray[x][y] has type 'boolean', which isn't an object, it's a primitive
// (don't use .equals() on primitives)
if(bombArray[x][y] == true){
return true;
} else{
return false;
}
}
但你可以把它简化得更清楚一些:
public boolean getBombArray(int x,int y){
// bombArray[x][y] is true if there's a bomb, false otherwise
return bombArray[x][y];
}
由于此处缺少括号,您应该会遇到编译时错误:
if(bombArray[x][y] .equals(true)
...
整个职能机构应为:
return bombArray[x][y];
异常发生在运行时。我怀疑这段代码是否能够抛出异常,因为它无法编译。让我们看一下:
for(x=0,x<Total_Colmns,x++){
bombArray[x][0] = true;
}
此外,如果您没有将单独的代码片段复制并粘贴到问题中,那么您的循环似乎超出了任何方法。在那里不行。它可能属于类的构造函数
在getter中,您有:
if(bombArray[x][y] .equals(true){
return true;
} else {
return false;
}
布尔值是基本类型,而不是对象,因此它没有equals方法。您可以只使用bombArray[x][y]==true。您还缺少if语句的结束语。实际上,由于数组元素已经是布尔值,您可以直接返回它:
public boolean getBombArray(int x, int y) {
return bombArray[x][y];
}
如果通过在光标位置传递获得ArrayIndexOutofBoundsCeptions,可能需要限制getter中的x&y坐标。比如:
if (x < 0 || x >= bombArray.length || y < 0 || y >= bombArray[x].length) return false;
如果仍然出现错误和异常,请显示真正的错误消息。它们包含帮助您修复它们的信息。不工作并没有足够的信息。有什么例外?请注意:没有理由使用getBombArray中的条件,只需返回该位置的值:return bombArray[x][y];此外,布尔函数没有.equals函数布尔函数有,虽然现在它的工作没有例外,但它的行为总是像如果isBomb=false,我可以发布我的代码,看看你是否能帮我找到某种错误?公共布尔getBombArrayint x,int y{ifx<0 | | x>TOTAL_COLUMNS-1 | | y<0 | y>TOTAL|u ROWS-2{return false;}否则{return bombArray[x][y];}@user2896762我建议打印出您正在读取的所有x&y,以确保它们是正确的。您是否将光标位置除以每个方格的大小?
if (x < 0 || x >= bombArray.length || y < 0 || y >= bombArray[x].length) return false;