在方法中缺少return语句
问题描述:
我遇到了识别缺少返回语句的方法的问题。这里有什么问题?在方法中缺少return语句
public static int doThisEven(int n) {
if (n == 2) {
return 2;
} else {
if (n % 2 == 0) {
return n + doThisEven(n - 1);
}
}
}
答
你需要编写garanties回归的方法没有什么奥美代码什么用,如果其他条件发生
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
}
}
你的代码返回时
- N = 2
- n是偶数
但是,如果n +都不是以上所述,让我们说n = 3? 那么该方法将永远不会找到返回语句,因此您在说明方法的合同。
答
尝试在所有情况下返回值:
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;不是你应该返回的数字,我只是为了让程序编译而做出的返回语句的例子。
当'n'奇数时,您的方法不会返回任何内容 – Eran