我遇到了识别缺少return语句的方法的问题。问题出在这里?
public static int doThisEven(int n) {
if (n == 2) {
return 2;
} else {
if (n % 2 == 0) {
return n + doThisEven(n - 1);
}
}
}
答案 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
}
}
时代码正在返回
但是,如果n +以上都不是,假设n = 3? 那么这个方法永远不会找到一个返回语句,所以你正在使用该方法的合同。