這是來自過去試卷的問題。有5個問題。三是錯誤,將阻止代碼正確運行,另外兩個在聲明和Javadoc中。Java - 某些代碼出錯
我不相信我的答案,但我認爲:
1.方法聲明不應該是無效的,你應該要爲這兩種方法調用返回的雙重價值。你也可以在方法聲明中加雙。然後
2.You需要添加一個return語句
3.添加到存儲值的方法的局部變量。
4.Possibly那麼你就需要@return
在Javadoc如果我添加一個return語句
5.Not知道這個錯誤
/**
* Calculate an expression a*x^n.
* @param a the multiplying factor
* @param x the number to be raised to a power
* @param n the power
*/
//original code
public void aPower(double a, double x, double n) {
if (n % 2 == 0) {
aPower(a, x * x, n/2);
} else {
aPower(a * x, x * x, n/2);
}
}
/**
* Calculate an expression a*x^n.
* @param a the multiplying factor
* @param x the number to be raised to a power
* @param n the power
* @return the answer to the expression
*/
//modified code
public double aPower(double a, double x, double n) {
double temp = 1.0;
if (n % 2 == 0) {
temp = aPower(a, x * x, n/2);
} else {
temp = aPower(a * x, x * x, n/2);
}
return temp;
}
你不需要臨時變量;你可以直接返回。 – Joey
我不明白你的意圖。在你修改後的代碼中,如果n是偶數,你將覆蓋'temp'。有些事情似乎並不正確。 – Makoto
你有什麼錯誤? – SiB