当前位置:编程学习 > JAVA >>

新手学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循环是不能保证一定可以执行 --------------------编程问答--------------------
--------------------编程问答--------------------
引用 1 楼 AA5279AA 的回复:
 for(n=2.0;n<=t;n++) 
       {if((x*1.0)%n==0.0) return true; 
       else return  false;
       } 
这条语句,你觉得你编译能通过么?
for循环运行N次,每次都生成一个返回值那该返回什么?

同意!!
楼主,我觉得你是有点想写递归吧,递归可不是这样写的哦 --------------------编程问答--------------------
引用 4 楼 luckytjm 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

 for(n=2.0;n<=t;n++) 
       {if((x*1.0)%n==0.0) return true; 
       else return  false;
       } 
这条语句,你觉得你编译能通过么?
for循环运行N次,每次都生成一个返回值那该返回什么?

同意!!
楼主,我觉得你是有点想写递归吧,递归可不是这样写的哦

应该不是想写递归,这里的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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,