Skip to main content

Hva er en halekursjon?

Hale rekursjon er en type programmeringsmetodeanrop der en metode kaller seg, og deretter returnerer verdien av den andre samtalen umiddelbart.Med andre ord oppstår halekursjon når den endelige uttalelsen i en metode er en annen oppfordring til den samme metoden.Parametrene i den andre metodesamtalen er generelt forskjellige fra de første, men dette er ikke nødvendig.For at denne rekursjonen skal fungere, må metoden som kalles i seg selv returnere en betongverdi, for eksempel et tall, streng eller et annet objekt.Ugyldige metoder, som ikke returnerer en verdi, fungerer ikke bra for rekursjon.

Kravet om at en rekursiv samtale må være den siste uttalelsen i sin anropemetode, betyr ikke nødvendigvis at den rekursive samtalen er den siste linjen i metoden.En riktig hale -rekursjonsanrop kan også finnes i en kontrollstruktur, noe som betyr at kontrollstrukturen i kildekoden kan avslutte metoden i stedet for samtalen.Det viktige skillet i dette tilfellet er at en kontrollstruktur ikke er en programmeringserklæring, men en innebygd del av dataspråket.

Hale rekursjon eksisterer på mange dataspråk, inkludert Java og C ++.Ofte kan disse rekursive samtalene skrives om ved hjelp av andre måter, for eksempel for løkker, mens løkker, eller GOTO -uttalelser.Nytten av rekursjon finnes når du oppretter mange sekvensielle samtaler til samme metode.Rekursjon er ofte den reneste og enkleste måten å utføre repeterende oppgaver.

Et vanlig eksempel på halerekursjon er en metode som beregner faktorialen til et tall.Denne prosessen er ideell fordi start på et hvilket som helst tall, hvert tall før den multipliseres sammen.Så for å finne fabrikken av 5, ville riktig prosess å gjøre det være å multiplisere 5*4*3*2*1.Rekursjonen kommer inn på grunn av hvordan fabrikkmetoden er strukturert: Hvis fabrikken er 1, returner 1, ellers returnerer fabrikken for antallet som er gitt til metoden minus en.Denne metoden er også nyttig fordi den kan skrives tilsvarende ved hjelp av en type halerekursjon, med eller uten en kontrolluttalelse rundt en endelig metodeanrop.

Hale rekursjon er bare ett eksempel på flere typer rekursjon.Konseptet i alle typer rekursjon er i hovedsak det samme, som på en eller annen måte kaller en metode seg selv.Av disse typene er skillet mellom halerekursjon at verdien av en rekursiv samtale umiddelbart returneres, og ingenting annet skjer i anropingsmetoden etter den samtalen.