方法的递归:就是方法自己调用自己,如下面的方法TellStory(),自己再调用自己,形成死循环。
class Program
{
static void Main(string[] args)
{
TellStory();//调用方法
Console.ReadKey();
}
public static void TellStory() //方法体
{
Console.WriteLine("老和尚在给小和尚讲故事");
Console.WriteLine("故事是山上有座,庙里有个老和尚,");
TellStory();//调用自己
}
}
但上面的程序存在“死循环”,需要在适当的时机停止。这时需要一个静态的成员变量
class Program
{
public static int count;//静态成员变量,
static void Main(string[] args)
{
TellStory();
Console.ReadKey();
}
public static void TellStory()
{
count++; //每次被调用都让count加1,从而记住被调用的次数
Console.WriteLine("老和尚在给小和尚讲故事");
Console.WriteLine("故事是山上有座,庙里有个老和尚,");
if (count > 5) //选择时机,当被调用5次后停止,特别注意,return有结束方法的作用
{
return;
}
TellStory();//调用自己,单步模拟会发现,程序最后会连续5次跳回这一句,这是递归的特点,
//用“同心圆”描述非常贴切
}
}