2012-02-06 134 views
-1

我的代碼在以前完美工作,現在它不再編譯。我已經尋找了一段時間缺少return語句,但仍無法找到它...以下是代碼:錯誤:缺少return語句

private static boolean Prime(int x){   
for(int i=1;i<x;i++) 
{ 
if(x%i==0){ 
return false; 
} 
return true; 
} 
} 
} 
+5

有什麼特別的原因,爲什麼你不縮進代碼?你會驚訝地發現錯誤很容易。 (另外,這不是以JavaScript開始的......) – Tomalak 2012-02-06 23:10:56

+0

(對於編輯者:請不要嘗試通過縮進代碼來改進問題。代碼不縮進的事實是問題的整個*點* ) – Tomalak 2012-02-06 23:30:44

+1

我會從現在開始縮進我的代碼...謝謝 – Nicolas 2012-02-07 00:11:42

回答

2

不應該最後回報是一個後右大括號?

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) 

我更新在縮進代碼塊中的條件。

+0

感謝您的幫助! – Nicolas 2012-02-07 00:11:17

1

可以很容易地看到一個問題,如果你使用縮進:

private static boolean Prime(int x) { 
    for (int i = 1; i < x; i++) { 
     if (x % i == 0) { 
      return false; 
     } 
     return true; 
    } 
} 
}