我想创建一个java方法来检查用户输入的int数是否为素数。但是,我得到“死代码”和“此方法必须返回int类型的结果”。有帮助吗?
public static int isPrime(int first)
{
for (int i = first - 1; i > 1; i--)
if (first%i == 0){
int prime = 1;
return prime;
}
else{
int notPrime = 0;
return notPrime;
}
}
如果他们拥有的唯一除数是1和它本身,则数字是素数。平凡的是,我们可以检查从1到自身的每个整数(不包括)并测试它是否均匀分配。
例如,可能有人试图运行此算法:
//checks whether an int is prime or not.
boolean isPrime(int n) {
for(int i=2;i<n;i++) {
if(n%i==0)
return false;
}
return true;
}
复制并将其粘贴到编辑器中后,很明显i--
是导致死代码警告出现的部分。这样做的原因是因为你的for
循环将在其第一次迭代中返回,并且代码i--
的部分将永远不会被执行(死代码)。
除此之外,在其他答案和评论中提到的代码中还有其他一些问题。
将return语句移到for循环之外。
由于你在if和else中循环返回,你的循环只会运行一次。
编辑:您还必须以不同方式跟踪素数。
public static int isPrime(int first)
{
for (int i = first - 1; i > 1; i--) {
if (first%i == 0){
return 1;
}
}
return 0;
}
很抱歉在手机上格式化我
int isPrime(int n) {
for(int i=2;i<n;i++) {
if(n%i==0)
return 1;
}
return 0;
}
如果素数为0则程序返回1