Einführung in die rekursive Funktion in C #
In der rekursiven Funktion in C # bedeutet Rekursion die gleiche Bedeutung wie in der englischen Sprache, genau bekannt als Wiederholung. Die rekursive Natur einer Funktion bedeutet also, die gleiche Arbeit wiederholt auszuführen. Und ja, wenn das Programm nicht richtig gehandhabt wird, würde es das Programm definitiv in einer Endlosschleife ausführen. Wir müssen sicherstellen, dass wir bei der Ausführung dieser rekursiven Funktionen die richtigen Bedingungen angeben, da sich die Funktion sonst immer wieder selbst aufruft und das Programm kontinuierlich ausführt. Hier sehen wir uns an, wie wir diese Funktionen in C # erstellen können.
Syntax rekursiver Funktionen in C #
Die Syntax hier entspricht der Syntax der Grundfunktionen in C #. Lassen Sie uns hier einen Blick darauf werfen.
Es gibt hier keine spezielle Syntax, aber wir können beobachten, dass eine Funktion sich selbst aufruft, um das Rückgabeergebnis bereitzustellen. Und wir müssen sehr vorsichtig sein, wenn wir diese Parameterwerte an diese rekursive Funktion übergeben, da wir offensichtlich keinen laufenden Code wollen, der nicht aufhört.
In der obigen Syntax gibt es nichts Vergleichbares, wir müssen die Funktion nur in return-Anweisungen aufrufen. Stattdessen können wir sogar den Rückgabewert der rekursiven Funktion einer Variablen zuweisen und diese Variable auch zurückgeben.
Durchführung der Faktorisierung
Hier nehmen wir unsere Standardproblemanweisung, Faktorisierung, um unsere rekursive Funktion zu generieren.
Code:
using System;
class First (
static void Main() (
int result;
result = fact(7);
Console.WriteLine("Factorial is : " + result);
)
public static int fact(int num)
(
if(num==0)
(
return 1;
)
return num*fact(num-1);
)
)
Sehen wir uns den schrittweisen Prozess an.
- Zunächst haben wir eine eigene parametrisierte Funktion erstellt, um einen Eingabewert aus der Hauptfunktion zu übernehmen, für die wir die Fakultät berechnen möchten.
- Dann haben wir eine if-Bedingung gemacht, um zu überprüfen, ob die angegebene Zahl Null ist. Wenn die Zahl Null ist, geben wir 1 als Standardwert zurück.
- Ansonsten multiplizieren wir die aktuelle Zahl mit der Funktion, die die Zahl minus 1 als Parameter verwendet.
- Diese Multiplikation wiederholt sich also, bis wir die Zahl 0 erreichen. Standardmäßig haben wir unseren Rückgabewert für Null als 1 geschrieben, das Endergebnis würde mit 1 multipliziert.
Ausgabe:
Jetzt werde ich im Code unseren Funktionsparameter von num minus 1 auf, num ersetzen. In diesem Fall ruft die Funktion sich selbst immer wieder auf und der Vorgang wird wiederholt.
Code:
using System;
class First (
static void Main() (
int result;
result = fact(7);
Console.WriteLine("Factorial is : " + result);
)
public static int fact(int num)
(
if(num==0)
(
return 1;
)
return num*fact(num);
)
)
Ausgabe:
Durch die obige Ausgabe können wir die Stapelüberlaufausnahme klar erkennen, bei der sich die Funktion wiederholt selbst aufruft. Nur der hervorgehobene Teil wird in Bezug auf das erste Programm geändert.
Auf die gleiche Weise können wir die Zahl wie folgt als vom Benutzer eingegebenen Wert festlegen:
Code:
using System;
class First (
static void Main() (
int result, c;
string a;
Console.Write("Enter value for number :");
a = Console.ReadLine();
c = Convert.ToInt32(a);
result = fact(c);
Console.WriteLine("Factorial is : " + result);
)
public static int fact(int num)
(
if(num==0)
(
return 1;
)
return num*fact(num-1);
)
)
Ausgabe:
Was ist, wenn wir als Eingabe Null angeben? Ja, man würde zurückgegeben.
Ausgabe:
Was ist, wenn wir eine negative Zahl angeben?
Ausgabe:
Dies gab mir auch eine Stapelüberlauf-Ausnahme, da unsere faktorielle Rekursionsfunktion ihren Wert des Parameters bei jeder Ausführung verringert. Die negativen Zahlen würden also auf -6, -7, -8 usw. reduziert. Aus diesem Grund gehen wir zu dieser Ausnahme.
Können Sie als Übung versuchen, eine rekursive Funktion für negative Zahlen zu erstellen?
Hinweis: Wir können eine Vorbedingung mit einer Zahl kleiner als Null annehmen und zu unserem rekursiven Funktionsparameter eine Eins hinzufügen, bis die Null erreicht ist.
Beispiele für rekursive Funktionen in C #
Es gibt nur wenige gute Beispiele für die rekursiven Funktionen:
Es gibt noch einige andere Stellen, an denen wir diese rekursiven Funktionen verwenden können.
- Drucken Sie fortlaufend Zahlen von einem bestimmten Start- und Endpunkt aus. (Programm unten)
- Addiere Zahlen ab einem bestimmten Startpunkt und halte am Endpunkt oder wenn eine bestimmte Summe erreicht ist.
- Druckt Zahlen, die durch eine bestimmte Zahl in einem bestimmten Bereich geteilt werden.
- Nach dem Schreiben eines Satzes und vielem mehr möchten wir eine beliebige Anzahl von durchgehenden Linien oder Punkten ausdrucken.
Wie Sie sehen können, ähnelt die rekursive Funktion der Funktionalität einer Schleife, wobei jedoch die gleiche Funktion wiederholt aufgerufen wird.
Lassen Sie uns sehen, wie wir eine rekursive Funktion schreiben können, indem wir fortlaufend Zahlen hinzufügen, bis das Programm die zweite Zahl findet, die als Eingabe gegeben wird.
Code:
using System;
class First (
static void Main() (
int result, c, d;
string a, b;
Console.Write("Enter value for 1st number :");
a = Console.ReadLine();
c = Convert.ToInt32(a);
Console.Write("Enter value for 2nd number :");
b = Console.ReadLine();
d = Convert.ToInt32(b);
result = add(c, d);
Console.WriteLine("Add is : " + result);
)
public static int add(int num1, int num2)
(
int sum ;
sum=num1;
if (num1 < num2 )
(
num1++;
sum=sum+add(num1, num2);
return sum;
)
return sum;
)
)
Was wir hier gemacht haben, ist:
- Wir haben zwei Zahlen num1 und num2 durch Benutzereingaben genommen
- Add function, fügt die Zahlen von num1 bis num2 hinzu.
Wenn ich zum Beispiel num1 = 5 und num2 = 8 nehme, erhalten wir eine Ausgabesumme von 5 + 6 + 7 + 8, also 26.
Ausgabe:
Und was ist, wenn ich num1 weniger als num2 gebe?
Ausgabe:
Es gibt als erstes einige als num1-Wert an. Wir haben den Summenwert num1-Wert zugewiesen und geben sum zurück, wenn die if-Anweisung nicht anwendbar ist.
Können Sie als Übung eine rekursive Funktion schreiben, um "Ich mag das Codieren" zu drucken, bis eine bestimmte Bedingung erfüllt ist?
Hinweis: Wir können das gleiche Verfahren wie im obigen Programm anwenden.
Fazit
Hier haben wir also erfolgreich rekursive Funktionen ausgeführt, wie diese Funktionen aufgerufen werden und einige Beispiele dafür. Wir haben auch gelernt, wie ein einfacher Unterschied beim Aufruf einer Funktion dazu führen kann, dass das Programm seine Grenzen überschreitet und eine Ausnahme erzeugt.
Empfohlene Artikel
Dies ist eine Anleitung zur rekursiven Funktion in C #. Hier diskutieren wir die Ausführung zur Erzeugung von rekursiven Funktionen mit ihren Beispielen. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren.
- Anonyme Funktionen in Matlab
- Tableau-Zeichenfolgenfunktionen
- Was ist Funktionstest?
- C # -Funktionen
- Einführung in die rekursive Funktion in C ++
- Lernen Sie die drei Möglichkeiten zum Lesen von Java-Benutzereingaben kennen