English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie lernen, rekursive Funktionen zu erstellen. Eine selbstaufrufende Funktion.
sich selbst aufrufendFunktionWird als rekursive Funktion bezeichnet. Und diese Technik wird Rekursion genannt. Beim Erstellen einer rekursiven Funktion müssen Bedingungen erstellt werden, um sicherzustellen, dass die Funktion sich nicht endlos selbst aufruft.
func recurse() { //Anweisungen recurse() } recurse()
Das folgende Diagramm zeigt die Art der Rekursion.
In der obigen Flussdiagramm wird die Rekursion endlos ausgeführt. In einigen Fällen mögen Sie eine Rekursion erstellen, die endlos ausgeführt wird, bis eine bestimmte Bedingung erfüllt ist.
Um endlose Rekursion zu vermeiden, verwenden Sie rekursive Aufrufe in den Swift-Bedingungsanweisungen, z.B.if ... else Anweisung。
func countDownToZero(num: Int) { print(num) if num > 0 { countDownToZero(num: num - 1) } } print("Countdown:") countDownToZero(num:3)
Wenn Sie das folgende Programm ausführen, wird die Ausgabe sein:
Countdown: 3 2 1 0
In dem obigen Programm gibt die Anweisung print("Countdown:") im Konsolenfenster ausCountdown:。Diese Anweisung ruft die Funktion countDownToZero(num: mit dem Integer-Typ-Parameter3) 。
countDownToZero() führt die Anweisungen innerhalb der Funktion aus, wenn die Bedingung num > 0 erfüllt ist, ruft countDownToZero(num: num - 1)。
Falls die Bedingung nicht erfüllt ist, wird die Funktionsaufruf nicht ausgeführt und die Rekursion wird beendet.
Schritte | Funktion aufrufen | ausgeben | num > 0 ? |
---|---|---|---|
1 | countDownToZero(3) | 3 | Ja |
2 | countDownToZero(2) | 2 | Ja |
3 | countDownToZero(1) | 1 | Ja |
4 | countDownToZero(0) | 0 | Nein (Beenden) |
func faktorial(of num: Int) -> Int if num == 1 { zurück 1 } else { return num * faktorial(of:num - 1) } } let x = 4 let result = faktorial(of: x) print("Das faktorial von \(x) ist \(result)")
Wenn Sie das folgende Programm ausführen, wird die Ausgabe sein:
Das faktorial von 4 ist 24
Schritte | Übergebene Parameter | Rückgabeanweisung | Wert |
---|---|---|---|
1 | 4 | zurück 4 * faktorial(of:3) | 4 * faktorial(of:3) |
2 | 3 | zurück 3 * faktorial(of:2) | 4 *3 * faktorial(of:2) |
3 | 2 | zurück 2 * faktorial(of:1) | 4 * 3 *2 * faktorial(of:1) |
4 | 1 | zurück 1 | 4 * 3 * 2 * 1 |
Wenn eine Lösung für das Problem in etwa in zwei Schritten gefunden werden kann, wird oft Rekursion als Ersatz für Iteration verwendet.