方法/函数7(方法的递归)
递归,说的简单一些就是方法它自己调用自己。从作用上来说有点像是循环。
错误示范:
static void Tellstory()
{
int i = 0;
Console.WriteLine("从前有座山");
Console.WriteLine("山里有座庙");
Console.WriteLine("庙里有个老和尚和小和尚");
Console.WriteLine("有一天,小和尚哭了,老和尚给小和尚讲了个故事");
i++;
if (i >= 10)
{ return; }
Tellstory(); //因为每次调用这个方法,都是从i=0开始调用,因此每次都是0,就永远无 //法满足>=10这个条件。
}
static void Main(string[] args)
{
Tellstory();
Console.ReadKey();
}
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
这是一个死循环。这个案例错就错在,他的自增,没有写对位置。不该放在那个地方。
正确示范:
static void Tellstory()
{
Console.WriteLine("从前有座山");
Console.WriteLine("山里有座庙");
Console.WriteLine("庙里有个老和尚和小和尚");
Console.WriteLine("有一天,小和尚哭了,老和尚给小和尚讲了个故事");
i++;
if (i >= 10)
{ return; }
Tellstory(); //因为每次调用这个方法,都是从i=0开始调用,因此每次都是0,就永远无 //法满足>=10这个条件。
}
static int i = 0;//把i=0写在方法外面,这样每次重新使用方法,就不会每次都执行i=0
static void Main(string[] args)
{
Tellstory();
Console.ReadKey();
}