using System;
namespace Test{
public class Program
{
static void Foo(int depth, int max)
{
Console.WriteLine("Calling Foo(depth={0}, max={1})", depth, max);
if (depth < max) Foo(depth + 1, max);
Console.WriteLine("Returning from Foo(depth={0}, max={1})", depth, max);
}
static void RecurseToDepth(int max)
{
Foo(0, max);
}
static void Main(string[] args)
{
RecurseToDepth(5);
}
}}
//输出结果
Calling Foo(depth=0, max=5)
Calling Foo(depth=1, max=5)
Calling Foo(depth=2, max=5)
Calling Foo(depth=3, max=5)
Calling Foo(depth=4, max=5)
Calling Foo(depth=5, max=5)
Returning from Foo(depth=5, max=5)
Returning from Foo(depth=4, max=5)
Returning from Foo(depth=3, max=5)
Returning from Foo(depth=2, max=5)
Returning from Foo(depth=1, max=5)
Returning from Foo(depth=0, max=5)
转载于:https://my.oschina.net/waston/blog/604299
递归函数详解
本文深入解析了递归函数的工作原理,通过一个简单的C#代码示例展示了递归调用的过程,从初始调用到最终返回,详细记录了每一次函数调用的深度和返回情况。
571

被折叠的 条评论
为什么被折叠?



