Swift 递归

17 Mar 2025 | 阅读 2 分钟

一个反复调用自身的函数被称为递归函数,这种技术称为递归。当你创建一个递归函数时,你必须创建一个条件,这样函数才不会无限次地调用自身。

示例

Swift Recursion

你可以在上图中看到递归是无限次执行的。为了摆脱这种无限递归,我们使用控制语句。

示例:Swift 4 程序打印 N 个正数

输出

Countdown:
6
5
4
3
2
1
0

你可以在上面的程序中看到,语句 print("Countdown:") 给出输出,语句 countDownToZero(num:3) 调用一个接受整数作为参数的函数。

函数 countDownToZero() 内部的语句被执行,如果条件 num > 0 满足,则再次调用函数 countDownToZero(),如 countDownToZero(num: num - 1)。

当条件不满足时,函数调用不会进行,递归停止。

执行步骤

步骤:函数调用已打印num > 0 ?
1countDownToZero(6)6是的
2countDownToZero(5)5是的
3countDownToZero(4)4是的
4countDownToZero(3)3是的
5countDownToZero(2)2是的
6countDownToZero(1)1是的
7countDownToZero(0)0否 (递归结束)

示例2:Swift 4 程序查找一个数的阶乘

输出

The factorial of 6 is 720

执行步骤

步骤:传递的参数返回语句
16return 6 * findFactorial(of:5)6 * findFactorial(of:5)
25return 5 * findFactorial(of:4)6 *5 findFactorial(of:4)
34return 4 * findFactorial(of:3)6 *5*4 findFactorial(of:3)
43return 3 * findFactorial(of:2)6 *5*4*3 findFactorial(of:2)
52return 2 * findFactorial(of:1)6*5*4*3*2 findFactorial(of:1)
61return 16*5*4*3*2*1

下一主题函数重载