日期:2014-05-20  浏览次数:20677 次

java SE中main函数能否递归调用?
各位大神java SE中main函数能否递归调用?如何能给个例子。。。。。跪求

------解决方案--------------------
这是基本常识吧。

main不过是个函数(在下主攻的是C,还是习惯叫成函数,其实就是方法的意思),和其它的函数的唯一区别只是作为程序的入口函数,除这点外其它特性与普通函数一样。

既然普通函数能够递归,那main函数有何不可?
举个例子,用main函数递归求阶乘:
Java code

public class MainTest {
    static int n=10;
    
    static int res=1;
    
    public static void main(String args[]) {
        if(args!=null && args.length==1) {
            try {
                n=Integer.parseInt(args[0]);
                n=n<0?10:n;
            } catch(Exception ex) {
                n=10;
            }
            res=1;
        }
        
        if(n>0) {
            res*=n--;
            main(null);
        } else
            System.out.println("Result:"+res);
    }
}

------解决方案--------------------
在java中 main()方法也是一个方法,只不过跟别的相比有点特殊,它里面也接受了参数(String args[])数组类型的字符数组,只要用于缓冲
------解决方案--------------------
理论上和规则上是允许的,因为main也是那个类的一个静态方法,可以通过 ClassName.main(String[])来调用。
但是原则上是不允许这样干的,因为main,其实只是一个启动器,或者叫做驱动接口,代码尽量的少比较好。