Video: Rekursion einfach erklärt - Funktionen in Java 5 ● Gehe auf SIMPLECLUB.DE/GO & werde #EinserSchüler 2025
Rekursion er et stort, skræmmende ord, som du ofte hører om programmering, især den frustrerende form for programmering, som de underviser på universitetet. Selvom det er et let koncept at beskrive, er det virkelig en tankegang, når det kommer til at forstå, hvordan rekursionen virker. De fleste mennesker accepterer bare det og fortsætter. Ikke her!
Rekursion er i grunden processen med en funktion, der kalder sig selv. For eksempel:
void funct (int x) {funct (x);}
I dette stykke kode ser du et forfærdeligt eksempel på en rekursiv funktion, men det tjener illustrative formål her: Funktionen () funktionen kalder sig selv. Det er rekursion. Hvad der sker i dette eksempel er i grunden en uendelig sløjfe, og ved hjælp af en teknisk noget-eller-anden, der kaldes stack pointe r , , går computeren til sidst ned. Men det er bare en illustration.
For rekursion til arbejde skal funktionen have en bailout-tilstand, ligesom en løkke. Derfor skal enten værdien, der sendes til den rekursive funktion eller dens returværdi, testes. Her er et bedre eksempel på en rekursiv funktion:
ugyldig rekursion (int x) {if (x == 0) returner; ellers {sætter ("Boop!"); rekursion (- x);}}
Funktionen rekursion () accepterer værdien x . Hvis x er lig med nul, bøyler funktionen. Ellers kaldes funktionen igen, men værdien x er reduceret. Decrement Prefix-operatøren bruges, så værdien x er reduceret før opkaldet er lavet.
Prøven rekursion () funktion springer i grunden teksten Boop! et givet antal gange. Så hvis recursion () kaldes med værdien 10, kan du se, at teksten vises ti gange.
Den vanvittige del om rekursion er, at funktionen fortsætter med at kalde sig selv og indpakke sig strammere og strammere, som om den er i en spiral. I det foregående eksempel afvikler tilstanden x == 1 endelig det twisty rod, og trækker i stigende grad tilbage til funktionen er færdig.
Følgende kode viser et fuldt program ved hjælp af stikprøveudvinding () -funktionen.
#include void recursion (int x); int main () {recursion (10); returnere (0);} void recursion (int x) {if (x == 0) returnere; ellers {sætter ("Boop!"); rekursion (- x);}}
En fælles demonstration af rekursion er en factorial funktion. faktorial er resultatet af at multiplicere en værdi ved hvert af dens positive heltal. For eksempel:
4! = 4 × 3 × 2 × 1
Resultatet af denne faktor er 24. Computeren kan også foretage denne beregning ved enten at implementere en loop eller skabe en rekursiv funktion.Her er en sådan funktion:
int factorial (int x) {if (x == 1) returnere (x); ellers returnere (x * factorial (x-1));}
Som med de øvrige rekursive funktioner indeholder funktionen factorial () en exit betingelse: x == 1. Ellers kaldes funktionen igen med en mindre end den nuværende værdi på x . Men al handlingen foregår med returværdierne.