详解 C# 方法的递归调用

在程序开发中,通常会在一个方法中调用其他方法,除此之外还有一种特殊情况就是在一个方法中调用方法自身。这种在方法内部调用自身的过程称为方法的递归调用。需要注意,递归必须要求有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。接下来通过一个案例来实现如何使用递归的方式计算自然数之和,具体如例 3-5 所示。
Program.cs
1 class Program
2 {
3  public static void Main(string[] args)
4  {
5   int sum = GetSum(4);    //调用递归方法,获得 1~4 的和
6   Console.WriteLine(「sum = 」+ sum);//打印结果
7   Console.ReadKey();
8  }
9  //下面的方法使用递归实现 求 1~n 的和
10  public static int GetSum(int n)
11  {
12   if (n == 1)
13   {
14    return 1; //满足条件,递归结束
15   }
16   int temp = GetSum(n - 1);//在方法体中调用自己的方法
17   return temp + n;
18  }
19 }
上面的代码中,定义了一个 GetSum()方法用于计算 1~n 自然数之和。例中的第 16 行代码相当于在 GetSum()方法的内部调用了自身,这就是方法的递归,整个递归过程在 n==1 时结束。由于方法的递归调用过程比较复杂,需要仔细思考。
在上面的代码中,整个递归过程中 GetSum()方法被调用了 4 次,每次调用时,n 的值都会递减。当 n 的值为 1 时,所有递归调用的方法都会以相反的顺序相继结束,所有的返回值会进行累加,最终得到的结果为 10。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值