我想创建一个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;
}
}
答案 0 :(得分:2)
将其复制并粘贴到编辑器后,很明显i--
是导致出现死代码警告的部分。这样做的原因是,您的for
循环将在第一个迭代过程中以任何一种方式返回,并且您的代码i--
的一部分将永远不会执行(死代码)。
除了答案和注释中提到的代码中还有其他几个问题。
答案 1 :(得分:0)
将return语句移至for循环之外。
由于您在if和else中都返回了循环,因此循环只会运行一次。
编辑:您还必须以不同的方式跟踪素数。
PERSON
很抱歉在手机上格式化即时通讯
答案 2 :(得分:0)
如果数字的唯一除数是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;
}
答案 3 :(得分:-1)
int isPrime(int n) {
for(int i=2;i<n;i++) {
if(n%i==0)
return 1;
}
return 0;
}
如果素数为0,程序将返回1