Java - for循环中的死代码

use*_*550 5 java loops for-loop

我在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;    
}
Run Code Online (Sandbox Code Playgroud)

Bri*_*new 12

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

    if(p % i == 0);         
        return false;
Run Code Online (Sandbox Code Playgroud)

应该

    if(p % i == 0)       
        return false;
Run Code Online (Sandbox Code Playgroud)

在第一个版本中,if语句后面有一个空子句(由于第一个分号).因此return false总是执行.退出方法,i++从不执行.


fge*_*fge 7

在您的if陈述后删除分号.


Pra*_*mha 3

问题出在这一行:

if(p % i == 0); 
Run Code Online (Sandbox Code Playgroud)

删除分号并重试