谁能详解一下递归?下面这个程序运用的是不是递归?class digui 
{
private static int number=0;
public static void main(String[] args) 
{
print();
}
public static void print()
{
System.out.println("xing");
print();
}
}上面这个程序运用是递归吗?如果是递归的话,它是不是成了死循环?

解决方案 »

  1.   

    当然是递归,确实是死循环,不断调用print(),直至StackOverflowError,栈溢出错误
      

  2.   

    是递归,是死循环。递归要有一个出口才行,这个出口可以限制递归的无限循环。
    比如上例,要打10行“xing”,那就这样:
        public static void main(String[] args){
            print(10);
        }    public static void print(int num){
            if(num==0){  //用这个条件来限制递归不会无限的循环下去。
               return;
            }
            System.out.println("xing");
            print(num-1);  //这里的num-1可以使用递归调用,趋向递归的出口。
        }
      

  3.   

    哈哈,楼主这个死循环当然用的是递归,在print里添加个循环跳出的条件就OK了
      

  4.   

    是死循环
             public static int diGui(int number){
    if(number==1)
    return number;
    return number*diGui(number-1);
    }
    这叫递归