Care este diferența dintre recurs și buclă

principala diferență între recursiune și bucla este asta recursiunea este un mecanism pentru a apela o funcție în cadrul aceleiași funcții, în timp ce bucla este o structură de control care ajută la executarea unui set de instrucțiuni din nou și din nou până când condiția dată este adevărată.

Recursia și bucla sunt două concepte de programare. Ambele tehnici ajută la dezvoltarea programelor mici și complexe.

Domenii cheie acoperite

1. Ce este Recurgerea
- Definiție, funcționalitate
2. Ce este Loop
- Definiție, funcționalitate
3. Care este diferența dintre recurs și buclă
- Compararea diferențelor cheie

Termeni cheie

În timpul buclă, pentru buclă, buclă, recurs, în timp ce buclă

Ce este Recurgerea

Când o funcție se numește în cadrul funcției, se numește recursiune. Un exemplu de program cu recursivitate este calculul factorial.

n! = n * (n-1)!, dacă n> 0

n! = 1, dacă n = 0;

Figura 1: Programul Factorial în Java

Conform programului de mai sus, el creează un obiect de Factorial. Apoi, folosind acest obiect, el numește metoda factorială. Metoda devine valoarea 4. Apoi se execută secțiunea else. După aceea, el numește factorial (3). Apoi, secțiunea else execută. Se numește factorial (2). Apoi se execută secțiunea else. Se numește factorial (1), iar secțiunea else execută din nou. Se numește factorial (0). Acum n este 0. Se întoarce 1. În cele din urmă, 1x2x3x4 = 24 este returnat, iar valorile sunt afișate pe ecran. De asemenea, o funcție factorială se numește din nou și din nou.

Ce este Loop

Uneori este necesar să executați în mod repetat un bloc de cod. Limbile de programare oferă o structură de control numită buclă pentru a executa un set de instrucțiuni. Buclă execută o declarație în interiorul blocului una după alta. Există trei tipuri de bucle ca în timp ce bucla, pentru buclă și în timp ce buclă. Mai mult decât atât, a repetare se referă și la o buclă.

În timp ce buclă

O buclă în timp conține o expresie de testare. Dacă expresia este adevărată, se execută instrucțiunile din buclă. La sfârșitul declarațiilor, verifică din nou expresia de testare. Apoi, acest proces se repetă până când expresia testului devine falsă. Atunci când expresia de testare este falsă, ciclul în timp se termină. Apoi, controlul trece la prima instrucțiune după buclă.

Figura 2: Programați cu buclă în timp

În programul de mai sus, x este 5. Este mai mic de 10. Prin urmare, va fi imprimat. Apoi, valoarea incrementelor x. Acum, x este 6. Este, de asemenea, mai mică de 10; prin urmare, va imprima. Apoi, din nou, valoarea incrementelor x. Acum x este 7. Astfel, acest proces se repetă. Când x este 10, condiția este falsă și buclă se termină.

Pentru buclă

Pentru bucla conține inițializarea, expresia testului și actualizarea. Expresia de inițializare se execută o singură dată. Apoi, ea evaluează expresia testului. Dacă este adevărat, se execută instrucțiunile din buclă. La sfârșitul ciclului, acesta evaluează expresia actualizată. Astfel, acest proces se repetă până când expresia testului este falsă. Când este falsă, se termină buclă. Apoi, controlul trece la următoarea declarație după buclă.

Figura 3: Programare cu buclă

În buclele de mai sus pentru buclă, valoarea x este 1. Este mai mică de 5. Deci, valoarea va fi imprimată. Apoi, valoarea x crește cu 1. Acum, valoarea x este 2. Este, de asemenea, mai mică de 5. Prin urmare, se va imprima. Apoi din nou, valoarea x crește cu 1. Acum, x este 3. Acest proces se repetă. Când x este 6, condiția de testare devine falsă și bucla se termină.

În timp ce buclă

În timp ce buclă este similară cu buclă în timp, dar verifică starea după executarea instrucțiunilor buclă. Prin urmare, dacă condiția este adevărată sau falsă, buclă se execută cel puțin o dată. Aici verificarea stării se produce după executarea buclă. Dacă condiția este adevărată, instrucțiunile buclă se vor executa din nou. Acest proces se repetă până când condiția devine falsă.

Figura 4: Programare cu "Do While Loop"

Valoarea x este inițial 5. Se execută buclă în timp ce se execută și se imprimă valoarea 5. Apoi, x devine 6. Este mai mică de 10. Astfel, 6 va imprima. Apoi, x devine 7. Este de asemenea mai mic de 10. Și acest proces se repetă. Când x este 9, valoarea este imprimată. Dar, când x devine 10, condiția devine falsă. Prin urmare, bucla se termina.

De exemplu, presupuneți că x este inițial 20. Se va imprima 20. Apoi x va crește și x va deveni 21. Condiția de testare este falsă. Prin urmare, se va termina bucla. Valoarea 20 este mai mare de 10, iar condiția de testare este falsă. Cu toate acestea, bucla se execută o singură dată. Prin urmare, faceți în timp ce buclă se execută cel puțin o dată.

Diferența între recurs și buclă

Definiție

Recurgerea este o metodă de a apela o funcție în cadrul aceleiași funcții. În contrast, bucla este o structură de control care permite executarea unui bloc de cod în mod repetat în cadrul programului. Aceste definiții conțin diferența fundamentală dintre recursiune și bucla.

Viteză

Viteza este o diferență majoră între recursiune și buclă. Exercitarea execuției este mai lentă. Cu toate acestea, bucla se execută mai repede decât recursiunea.

Grămadă

În regresie, stiva este folosită pentru a stoca variabilele locale atunci când este apelată funcția. Dar bucla nu folosește stivă.

Condiție

Dacă nu există nicio condiție de terminare, poate fi o recurență infinită. Cu toate acestea, dacă condiția nu devine falsă, va fi o buclă infinită. Aceasta este o altă diferență între recursiune și bucla.

Spațiu complex

Mai mult decât atât, complexitatea spațială a programului recursiv este mai mare decât o buclă.

Cod de citire

O altă diferență între recursiune și buclă este că un program cu recursivitate este mai ușor de citit decât un program cu bucle.

Concluzie

Diferența dintre recursiune și buclă este aceea că recursiunea este un mecanism pentru a apela o funcție în cadrul aceleiași funcții, în timp ce bucla este o structură de control care permite executarea unui set de instrucțiuni din nou și din nou până când condiția dată este adevărată.

Referinţă:

1. "Recursion (Computer Science)". Wikipedia, Fundația Wikimedia, 12 septembrie 2018, disponibil aici.
2. "Controlul buclă Java". Www.tutorialspoint.com, disponibil aici.