递归,简单来讲,就是写一个方法,然后这个方法又反复调用自己,达到一定的条件跳出
示例代码
static void Main(string[] args)
{
G(9);
}
public static void G(int a)
{
if (a>0)
{
G(a - 1);
for (int i = 1; i <=a; i++)
{
Console.Write(i+"*"+a+"="+i*a+" ");
}
Console.Write("\r\n");
}
}
运行结果
方法G反复调用自身,等到参数a的值小于等于0的时候就结束了,然后运行下面的for循环
运行流程如下
大家都知道,代码是从上往下执行,这都是同步执行,所以中间只要没执行完就会卡住,后面的代码就必须要等上面执行完才能继续执行,这就导致了G(9)是最先执行完,但是G(9)里面的for却是最后被执行
这个时候我们把调用自身放到for循环后面
static void Main(string[] args)
{
G(9);
}
public static void G(int a)
{
if (a>0)
{
for (int i = 1; i <=a; i++)
{
Console.Write(i+"*"+a+"="+i*a+" ");
}
Console.Write("\r\n");
G(a - 1);
}
}
这个时候就是反过来的,下次说说带返回参数的回调
我的博客地址:Wy博客