在程序开发中,通常会在一个方法中调用其他方法,除此之外还有一种特殊情况就是在一个方法中调用方法自身。这种在方法内部调用自身的过程称为方法的递归调用。需要注意,递归必须要求有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。接下来通过一个案例来实现如何使用递归的方式计算自然数之和,具体如例 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。
详解 C# 方法的递归调用
最新推荐文章于 2023-12-05 21:08:38 发布