我的代碼在以前完美工作,現在它不再編譯。我已經尋找了一段時間缺少return語句,但仍無法找到它...以下是代碼:錯誤:缺少return語句
private static boolean Prime(int x){
for(int i=1;i<x;i++)
{
if(x%i==0){
return false;
}
return true;
}
}
}
我的代碼在以前完美工作,現在它不再編譯。我已經尋找了一段時間缺少return語句,但仍無法找到它...以下是代碼:錯誤:缺少return語句
private static boolean Prime(int x){
for(int i=1;i<x;i++)
{
if(x%i==0){
return false;
}
return true;
}
}
}
不應該最後回報是一個後右大括號?
private static boolean Prime(int x){
for(int i=1;i*i<x;i++)
{
if(x%i==0){
return false;
}
}
return true;
}
並且,作爲附註,您可以停止x的平方根處的for循環。
i * i < x
或
i < sqrt(x)
我更新在縮進代碼塊中的條件。
感謝您的幫助! – Nicolas 2012-02-07 00:11:17
可以很容易地看到一個問題,如果你使用縮進:
private static boolean Prime(int x) {
for (int i = 1; i < x; i++) {
if (x % i == 0) {
return false;
}
return true;
}
}
}
有什麼特別的原因,爲什麼你不縮進代碼?你會驚訝地發現錯誤很容易。 (另外,這不是以JavaScript開始的......) – Tomalak 2012-02-06 23:10:56
(對於編輯者:請不要嘗試通過縮進代碼來改進問題。代碼不縮進的事實是問題的整個*點* ) – Tomalak 2012-02-06 23:30:44
我會從現在開始縮進我的代碼...謝謝 – Nicolas 2012-02-07 00:11:42