我在i++
的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 :(得分:12)
您总是立即退出循环,因此i
永远不会增加。
if(p % i == 0);
return false;
应该是
if(p % i == 0)
return false;
在第一个版本中,if语句后面有一个空子句(由于第一个分号)。因此,return false
始终执行。退出方法,i++
永远不会执行。
答案 1 :(得分:7)
在if
声明后删除分号。
答案 2 :(得分:3)
问题出在这一行:
if(p % i == 0);
删除分号,然后重试
答案 3 :(得分: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;
}