Java - for循环中的死代码

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

这里的p的值是多少? - Achintya Jha
2
你欺骗了我!那个分号很难看到... - Alba Mendez
@jmendeth,这总是没问题的! :) - Sikorski
4个回答

13

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

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

应该是

    if(p % i == 0)       
        return false;
在第一个版本中,if语句后面是一个空的子句(由于第一个分号)。因此,return false 语句总是会执行。您退出方法,而 i++ 从未执行。

7
在您的if语句后面删除分号。

3
问题出在这行代码:
if(p % i == 0); 

移除分号,然后再试一次


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接