这是代码:
private int getUpSite(int i, int j){
if (i - 1 >= 1){
if (grid[i - 2][j] != 0){
return xyTo1D(i - 1, j);
}
}
else{
return -1;
}
}
根据i和j的值,该方法返回-1或xyTo1D方法构建的另一个整数。问题是编译器一直在抱怨:“此方法必须返回int类型的结果”。
代码有什么问题?我该如何解决这个问题?
答案 0 :(得分:6)
如果控件未进入第二级if
会怎样?
if (grid[i - 2][j] != 0)
没有退货声明,不是吗?
您需要为所有可能的路径提供return
语句。
如何解决此问题?
一种可能的方式:
如果是,也为第一级添加return
语句。实施例
if (i - 1 >= 1){
if (grid[i - 2][j] != 0){
return xyTo1D(i - 1, j);
}
return -1; //OR whatever int you would like to return
}
答案 1 :(得分:1)
private int getUpSite(int i, int j){
int returnVal = -1;
if (i - 1 >= 1){
if (grid[i - 2][j] != 0){
returnVal = xyTo1D(i - 1, j);
}
}
return returnVal;
}
答案 2 :(得分:0)
private int getUpSite(int i, int j){
int returnValue=-1;
if (i - 1 >= 1 && grid[i - 2][j] != 0){
returnValue = xyTo1D(i - 1, j);
}
return returnValue;
}