5

我在 for 循环中收到死代码警告i++。为什么我会得到这个,我该如何解决这个问题?

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;    
}
4

4 回答 4

13

您总是立即退出循环,因此i永远不会增加。

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

应该

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

在第一个版本中,if 语句后面有一个空子句(由于第一个分号)。因此return false总是执行。您退出该方法,并且i++永远不会执行。

于 2012-12-24T11:35:58.573 回答
7

删除语句后的分号if

于 2012-12-24T11:36:08.073 回答
3

问题出在这一行:

if(p % i == 0); 

删除分号并重试

于 2012-12-24T11:36:34.440 回答
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;    
    }
于 2012-12-24T12:07:16.947 回答