方法是返回int类型,但我不断得到"此方法必须返回int类型的结果"错误

Lyd*_*Lyd 2 java methods types return

这是代码:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

根据i和j的值,该方法返回-1或xyTo1D方法构建的另一个整数.问题是编译器一直在抱怨:"此方法必须返回int类型的结果".

代码有什么问题?我该如何解决?

kos*_*osa 6

如果控制没有进入第二级会发生什么if

if (grid[i - 2][j] != 0)
Run Code Online (Sandbox Code Playgroud)

没有退货声明,不是吗?

您需要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
    }
Run Code Online (Sandbox Code Playgroud)