Vad är skillnaden mellan rekursion och loopning

De huvudskillnad mellan rekursion och loop är det rekursion är en mekanism för att ringa en funktion inom samma funktion medan loop är en kontrollstruktur som hjälper till att utföra en uppsättning instruktioner om och om igen tills det givna villkoret är sant.

Rekursion och loop är två programmeringskoncept. Båda dessa tekniker bidrar till att utveckla små till komplexa program.

Viktiga områden som omfattas

1. Vad är Recursion
- Definition, Funktionalitet
2. Vad är Loop
- Definition, Funktionalitet
3. Vad är skillnaden mellan rekursion och loopning
- Jämförelse av viktiga skillnader

Nyckelbegrepp

Gör medan Loop, För Loop, Loop, Recursion, While Loop

Vad är Recursion

När en funktion kallar sig inom funktionen kallas det rekursion. Ett exempel på ett program med rekursion är beräkning av factorial.

n! = n * (n-1)!, om n> 0

n! = 1, om n = 0;

Figur 1: Faktoriellt program i Java

Enligt ovanstående program skapar det ett objekt av Factorial. Då anropar den metoden med hjälp av det objektet. Och metoden får värdet 4. Nästa, exekverar annars avsnittet. Efter det kallar det faktoriell (3). Sedan kör den andra sektionen. Det kallar factorial (2). Därefter exekverar annars avsnittet. Den kallar factorial (1), och den andra delen körs igen. Det kallar factorial (0). Nu är n 0. Det returneras 1. Slutligen returneras 1x2x3x4 = 24, och värdena visas på skärmen. På samma sätt kallar en factorialfunktion sig om och om igen.

Vad är Loop

Ibland är det nödvändigt att exekvera ett block av kod flera gånger. Programmeringsspråk ger en kontrollstruktur kallad loop för att utföra en uppsättning instruktioner. Loop utför ett uttalande inuti blocket en efter en. Det finns tre typer av slingor som mellanslag, för slinga och gör medan slingan. Dessutom är en iteration refererar också till en slinga.

Medan Loop

En stundslinga innehåller ett testuttryck. Om det här uttrycket är sant, utförs uttalandena i mellanslangen. I slutet av uttalandena kontrollerar den testuttrycket igen. Sedan upprepar denna process tills testuttrycket blir falskt. När testuttrycket är felaktigt, slutar slingan. Sedan passerar kontrollen till det första uttalandet efter mellanslingan.

Figur 2: Program med mellanslag

I ovanstående program är x 5. Det är mindre än 10. Därför kommer det att skrivas ut. Då ökar x-värdet. Nu är x 6. Det är också mindre än 10; Därför kommer det att skrivas ut. Därefter ökar x-värdet. Nu är x 7. Så här upprepar denna process. När x är 10 är tillståndet falskt, och slingan slutar.

För Loop

För loop innehåller initialisering, testuttryck och uppdatering. Initialiseringsuttrycket körs en gång. Då utvärderar det testuttrycket. Om det är sant utförs uttalandena innanför loop. I slutet av slingan utvärderar den det uppdaterade uttrycket. Således upprepar denna process tills testuttrycket är falskt. När det är felaktigt slutar slingan. Sedan går kontrollen till nästa uttalande efter loop.

Figur 3: Program med för loop

I ovanstående för loop är x-värdet 1. Det är mindre än 5. Så kommer värdet att skrivas ut. Då ökar x-värdet med 1. Nu är x-värdet 2. Det är också mindre än 5. Därför kommer det att skrivas ut. Därefter ökar x-värdet med 1. Nu är x 3. Denna process upprepas. När x är 6 blir testtillståndet falskt och slingan slutar.

Gör medan Loop

Gör medan slingan liknar slingan, men det kontrollerar villkoret efter att ha genomfört slingans uttalanden. Därför, om villkoret är sant eller falskt, exekverar slingan minst en gång. Här sker kontroll av tillståndet efter att slingan exekveras. Om villkoret är sant utförs slinguppsättningarna igen. Denna process upprepar tills tillståndet blir falskt.

Figur 4: Program med gör medan loop

X-värdet är initialt 5. Undergången körs och skriver ut värdet 5. Då blir x 6. Det är mindre än 10. Så kommer 6 att skriva ut. Därefter blir x 7. Det är också mindre än 10. Och denna process upprepas. När x är 9, skrivs värdet. Men när x blir 10 blir tillståndet falskt. Därför avslutar slingan.

Antag exempelvis att x är initialt 20. Det kommer att skrivas ut 20. Då kommer x att öka och x blir 21. Testförhållandet är falskt. Därför kommer det att avsluta slingan. Värdet 20 är högre än 10, och testförhållandet är falskt. Slingan exekverar dock en gång. Gör därför att medan slingan körs minst en gång.

Skillnad mellan rekursion och loop

Definition

Recursion är ett sätt att ringa en funktion inom samma funktion. Slingan är däremot en kontrollstruktur som gör det möjligt att exekvera ett block av kod flera gånger inom programmet. Dessa definitioner innehåller den grundläggande skillnaden mellan rekursion och loop.

Fart

Hastighet är en stor skillnad mellan rekursion och loop. Rekursionen är långsammare. Slingan exekverar dock snabbare än rekursion.

Stack

I rekursion används stapeln för att lagra de lokala variablerna när funktionen heter. Men slingan använder inte stack.

Tillstånd

Om det inte finns något uppsägningstillstånd kan det vara en oändlig recursion. Men om villkoret aldrig blir falskt kommer det att vara en oändlig loop. Detta är en annan skillnad mellan rekursion och loop.

Rymdkomplexitet

Dessutom är rymdkomplexiteten hos det rekursiva programmet högre än en slinga.

Kod läsbarhet

En annan skillnad mellan rekursion och loop är att ett program med rekursion är mer läsligt än ett program med loopar.

Slutsats

Skillnaden mellan recursion och loop är att rekursion är en mekanism för att ringa en funktion inom samma funktion medan loop är en kontrollstruktur som gör det möjligt att genomföra en uppsättning instruktioner om och om igen tills det givna tillståndet är sant.

Referens:

1. "Rekursion (datavetenskap)." Wikipedia, Wikimedia Foundation, 12 september 2018, Tillgänglig här.
2. "Java Loop Control". Www.tutorialspoint.com, Tillgänglig här.