首页 > 解决方案 > 我有一个返回 int 的方法,它告诉我我缺少一个 return 语句。可以在不重写方法的情况下解决这个问题吗?

问题描述

这就是方法。正如你所看到的,所有的 if 语句都有一个返回,所以我理解为什么它不能识别输出,但是有什么办法可以解决这个问题吗?

private int bounds(int x, int y) {
        if (x == -1) {
            if (y == -1) {
                return life[130][70];
            }
            else if (y == 71) {
                return life[130][0];
            }
            if (0 <= y && y <= 70) {
                return life[130][y];
            }
        }
        else if (x == 131) {
            if (y == -1) {
                return life[0][70];
            }
            else if (y == 71) {
                return life[0][0];
            }
            if (0 <= y && y <= 70) {
                return life[0][y];
            }
        }
        if (0 <= x && x <= 130) {
            if (y == -1) {
                return life[x][70];
            }
            else if (y == 71) {
                return life[x][0];

            }
            if (0 <= y && y <= 70) {
                return life[x][y];
            }
        }
    }

标签: java

解决方案


问问自己,如果 x 是 -2,你的方法会返回什么。

含义:编译器告诉您,通过该方法的路径没有看到返回语句。简单地说:相信编译器。

您可以通过在 if 块之后添加一个最终返回语句来解决此问题。

但真正的答案是:你永远不应该编写变得如此复杂的代码。以上是维护的噩梦。它应该被重构。


推荐阅读