新手学java求教
class A{
boolean f(int x)
{
double n=x*1.0,t;
t=Math.sqrt(n*1.0);
for(n=2.0;n<=t;n++)
{if((x*1.0)%n==0.0) return true;
else return false;
}
}
}
class test3
{
public static void main(String[] args)
{ int i;
A aa=new A();
for(i=101;i<=201;i++)
{
if(aa.f(i)==true) System.out.printf(" %d",i);
else continue;
}
}
}
编译结果是无返回值 Java --------------------编程问答-------------------- for(n=2.0;n<=t;n++)
{if((x*1.0)%n==0.0) return true;
else return false;
}
这条语句,你觉得你编译能通过么?
for循环运行N次,每次都生成一个返回值那该返回什么? --------------------编程问答-------------------- f方法的for循环后需要加上返回值,因为for循环是不能保证一定可以执行 --------------------编程问答--------------------
--------------------编程问答--------------------
同意!!
楼主,我觉得你是有点想写递归吧,递归可不是这样写的哦 --------------------编程问答--------------------
应该不是想写递归,这里的f只是判断一个数是否是质数而已,其实改也听简单的
boolean f(int x)
{
double n=x*1.0,t;
t=Math.sqrt(n*1.0);
for(n=2.0;n<=t;n++)
{if((x*1.0)%n==0.0) return true;
else return false;
}
}
改成
boolean f(int x)
{
double n=x*1.0,t;
t=Math.sqrt(n*1.0);
for(n=2.0;n<=t;n++)
{if((x*1.0)%n==0.0) return true; }//括号换到这里
return false;//这里去掉else
}
这样应该就实现了判断是否质数的功能。 --------------------编程问答-------------------- class A
{
boolean f(int x)
{
double n=x*1.0,t;
t=Math.sqrt(n*1.0);
for(n=2.0;n<=t;n++)
{
if((x*1.0)%n==0.0)
return true;
}
return false;
}
}
public class test3
{
public static void main(String[] args)
{ int i;
A aa=new A();
for(i=101;i<=201;i++)
{
if(aa.f(i)==true)
System.out.print(" "+i);
else continue;
}
}
}
--------------------编程问答-------------------- f方法的for循环后需要加上返回值,因为for循环是不能保证一定可以执行 --------------------编程问答-------------------- 谢谢各位帮我纠正错误,结果做出来了有点小激动!thank you!
补充:Java , Java EE