缺少方法中的return语句

时间:2016-05-29 08:20:14

标签: java methods

我遇到了识别缺少return语句的方法的问题。问题出在这里?

public static int doThisEven(int n) {
    if (n == 2) {
        return 2;
    } else {
        if (n % 2 == 0) {
            return n + doThisEven(n - 1);
        }

    }

}

2 个答案:

答案 0 :(得分:1)

尝试在所有情况下返回值:

public static int doThisEven(int n) {
    if (n == 2) {
        return 2;
    } else {
        if (n % 2 == 0) {
        return n + doThisEven(n - 1);
        }

    }
    return 0;//if none of the previous cases are true
}

你也可以试试这个:

public static int doThisEven(int n) {
if (n == 2) {
    return 2;
} else {
    if (n % 2 == 0) {
    return n + doThisEven(n - 1);
    }else
    {
        return 0;//if none of the previous cases are true
    }

}

注意返回0;不是你应该返回的数字,我只是做了一个你应该为程序编译的return语句的例子。

答案 1 :(得分:0)

你需要编写一个代码来保证返回方法,而不管if else条件发生了什么

if (n == 2) {
        return 2; // return if n is 2
    } else {
        if (n % 2 == 0) {
            return n + doThisEven(n - 1); return 2; // return if n is off
        }
    }

时代码正在返回

  1. n = 2的
  2. n甚至是
  3. 但是,如果n +以上都不是,假设n = 3? 那么这个方法永远不会找到一个返回语句,所以你正在使用该方法的合同。