IsPrime方法具有无效代码,并且不返回int

时间:2018-11-01 21:52:40

标签: java

我想创建一个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;
    }

  }

4 个答案:

答案 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