java题目:判断101-200之间有多少个素数,并输出所有素数。 程序报错:无返回值 谁来帮帮我

2024-11-27 08:43:57
推荐回答(3个)
回答1:

如果这种带有选择结构的返回值,你必须确保每一个可能到达的分支都有return语句。

此例中,即使你能够一眼看出来程序必会进入for循环中,之后必会返回一个布尔值。

但是在编译期,Java编译器是不具备这种能力的。所以,编译器报错,以保证所有路径都能有一个返回值。

忽略其他代码,经过分析:

其实for循环是没有必要的。因为只要进入for循环,程序在第一次循环中必会产生返回值。故此处循环只能执行一轮。

 

所以编译器提示 "n++"为"Dead code"(死代码,无用的代码)。

参考:

class A {
boolean f(int x) {
double n = x * 1.0, t;
t = Math.sqrt(n * 1.0);
if ((x * 1.0) % n == 0.0)
return true;
else
return false;
}
}

 

***************************************希望能够帮助到你!**********************************************
如果我的回答对你有帮助,
别忘了点击我的回答下方【选为满意答案】按钮。
谢谢!

回答2:

不要用double类型,用int类型判断是不是素数。

class SuShuJudge
{
  static boolean isSuShu(int paramInt)
  {
    if (paramInt <= 1) return false;
    if (paramInt == 2) return true;
    for (int i = 2; i <= (int)Math.sqrt(paramInt); i++)
      if (paramInt % i == 0) return false;
    return true;
  }
}

给你个例子:

回答3:

public class PrimeNum{
static boolean isPrime(int x){
for(int n=2; n if(x % n==0)
return false;
}
return true;
}
public static void main(String[] args){
for(int i=101;i<201;i++){
if(isPrime(i)==true)
System.out.printf(" %d",i);
}
}
}

简化一下。