问答详情
源自:5-7 递归函数(一)

自定义函数自身能否作为返回值用?

如题,请大神指点下。

提问者:qq_a晓月清风_0 2017-06-04 13:33

个回答

  • qq_a晓月清风_0
    2017-06-04 15:28:01

    谢谢,非常感谢您的回答。

  • 扛旗手
    2017-06-04 14:42:58

    这个可以这样做,是一个死循环........编译不会报错.但是你会一脸懵逼.我做Java.做了一个简单的....

    你自定义的函数,如果是有返回值的,那返回什么?你返回这个函数,那这个函数处理的结果你怎么要?

    除非, 你要加一些条件

    跳出来这个循环.

    Java代码,很简单,你可以看看

    package test;

    public class FanHuiZiJi {

        /**
         * @param args
         */
        public static void main(String[] args) {
            int a=aaa();
            System.out.println("a==="+a);
        }
        
        public static int aaa(){
            System.out.println("测试/....");
            return aaa();
        }

    }


    测试结果

    ......................

    测试/....
    测试/....
    测试/....
    测试/....
    测试/....
    测试/....
    测试/....
    Exception in thread "main" java.lang.StackOverflowError
        at sun.nio.cs.ext.DoubleByte$Encoder.encodeLoop(DoubleByte.java:617)
        at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:579)
        at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:271)
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207)
        at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:129)
        at java.io.PrintStream.write(PrintStream.java:526)
        at java.io.PrintStream.print(PrintStream.java:669)
        at java.io.PrintStream.println(PrintStream.java:806)
        at test.FanHuiZiJi.aaa(FanHuiZiJi.java:14)
        at test.FanHuiZiJi.aaa(FanHuiZiJi.java:15)
        at test.FanHuiZiJi.aaa(FanHuiZiJi.java:15)
        at test.FanHuiZiJi.aaa(FanHuiZiJi.java:15)

    ...............................