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

时间:2013-08-30 04:08:50

标签: 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;
    }
}

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

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

3 个答案:

答案 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;
}