我遇到了識別缺少返回語句的方法的問題。這裏有什麼問題?在方法中缺少return語句
public static int doThisEven(int n) {
if (n == 2) {
return 2;
} else {
if (n % 2 == 0) {
return n + doThisEven(n - 1);
}
}
}
我遇到了識別缺少返回語句的方法的問題。這裏有什麼問題?在方法中缺少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 +都不是以上所述,讓我們說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