import java.io.*;
class Lj_7
{
  int i; //输入的整数
  int n; //阶乘
  
     void Lj_7()
  {
   try{
BufferedReader inObj=new BufferedReader(new InputStreamReader(System.in));
     System.out.println("请输入一个数:");
     i=Integer.parseInt(inObj.readLine());
   inObj.close();
}
   catch(IOException e)
     {
   System.out.println(e); 
   }
   }
  
  public void getSuanFa()
  {
for(;i>=1;--i)
   {
   n=n*i;
   } 
  System.out.println("阶乘为"+n);
  }
   
public static void main(String args[])
  {
     Lj_7 d=new Lj_7();
     d.getSuanFa();
  }
};
编译通过以后,运行结果为[ 阶乘为:0],并没有提示我输入整数,请大家帮我看看哪错了,谢谢

解决方案 »

  1.   

    public void getSuanFa() {
        n = 1;
        for(int x = 0;x < i ;x++) {
            n = n * i;
            i--;
        }
        System.out.println("阶乘为"+n);
    }
      

  2.   

    public int test(int n){
        if(n==1){
          return n;
        }else{
           retun n*test(n-1);
        }
    }递归算法,没试..还不知道java支持否?
      

  3.   

    BufferedReader inObj=new BufferedReader(new InputStreamReader(System.in));
    上加断点看有没有执行到那里.不行改     void Lj_7()为 public void Lj_7()
      

  4.   

    构造方法写错了:
    void Lj_7() --->  public Lj_7()
      

  5.   

    两个错误
    import java.io.*;
    class Lj_7
    {
      int i; //输入的整数
      int n; //阶乘   //错误 改为int n = 1;
      
      void Lj_7()  //错误 改为Lj_7()
      {
       try{
    BufferedReader inObj=new BufferedReader(new InputStreamReader(System.in));
         System.out.println("请输入一个数:");
         i=Integer.parseInt(inObj.readLine());
       inObj.close();
    }
       catch(IOException e)
         {
       System.out.println(e); 
       }
       }
      
      public void getSuanFa()
      {
    for(;i>=1;--i)
       {
       n=n*i;
       } 
      System.out.println("阶乘为"+n);
      }
       
    public static void main(String args[])
      {
         Lj_7 d=new Lj_7();
         d.getSuanFa();
      }
    };
      

  6.   

    1、类名不要起的这么怪异
    2、你的构造函数写错了,构造函数没有返回值。而你现在只是写了一个名为Lj_7的函数,没写构造函数。
    3、函数名最好不要用拼音来写
    4、尽量使用ex.printStraceTrace()打印异常
    5、注意格式的缩进
    6、建议多看看Java标准类库中的一些源代码
      

  7.   

    阶乘不要用int甚至都不能用long,因为连long都只能算到21!