除了调用其他方法,方法也可以调用自身方法。这就叫做递归
递归的例子:
int Factorial(int _intvalue)
{
if(_intvalue<=0)
return _intvalue;
else
return _intvalue + Factorial(_intvalue-1);//调用Factorial本身
}
调用方法自身的机制和调用其它方法其实是完全一样的。每次方法调用都是把新的栈帧压入栈顶。
例如:
class Program
{
public void Count(int _intvalue)
{
if(_intvalue ==0) return;
Count(_intvalue-1);
Console.WriteLine("{0}",_intvalue);
}
static void Main()
{
Program pr=new Program();
pr.Count(3);
}
}
在上述代码中,Count方法使用比输入值小于1的值调用自身然后打印输入的值。随着递归越来越深,栈也越来越大。
时间: 2024-12-12 08:45:36