2012-12-24 83 views
5

我在for循環中得到一個死代碼警告,在i++。爲什麼我這樣做,我該如何解決這個問題?Java - for循環中的死代碼

public static boolean Method(int p) { 
    for(int i = 2; i < p; i++) { // here is the problem, at i++ 
     if(p % i == 0);   
      return false; 
    } 
    return true;  
} 
+0

什麼是對這裏的價值? –

+2

你騙了我!這個分號很難看... –

+0

@jmendeth它永遠是! :) – Sikorski

回答

3

問題是在這一行:

if(p % i == 0); 

刪除分號,然後再試一次

12

你總是退出循環立即,因此i永遠不會被遞增。

if(p % i == 0);   
     return false; 

應該

if(p % i == 0)  
     return false; 

在第一個版本,你有以下的if語句(由於第一分號)一個空的條款。因此總是執行return false。您退出該方法,並且i++從不執行。

7

刪除if語句後的分號。

1

如果您的代碼擴展那麼這將成爲

 public static boolean Method(int p) { 
     for(int i = 2; i < p; i++) { // here is the problem, at i++ 
      if(p % i == 0) 
      { 

      } 
      return false; //If you give return statement here then how it will work. 
     } 
     return true;  
    }