Qual è la differenza tra ricorsione e loop

Il differenza principale tra ricorsione e loop è quello la ricorsione è un meccanismo per chiamare una funzione all'interno della stessa funzione mentre il ciclo è una struttura di controllo che aiuta a eseguire un insieme di istruzioni ancora e ancora fino a quando la condizione data è vera.

La ricorsione e il ciclo sono due concetti di programmazione. Entrambe queste tecniche aiutano a sviluppare programmi piccoli e complessi.

Aree chiave coperte

1. Cos'è la ricorsione
- Definizione, Funzionalità
2. Cos'è il ciclo
- Definizione, Funzionalità
3. Qual è la differenza tra ricorsione e loop
- Confronto tra le principali differenze

Parole chiave

Do While Loop, For Loop, Loop, Ricorsione, While Loop

Cos'è la ricorsione

Quando una funzione si chiama all'interno della funzione, viene chiamata ricorsione. Un esempio di un programma con ricorsione è il calcolo fattoriale.

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

n! = 1, se n = 0;

Figura 1: programma fattoriale in Java

Secondo il programma di cui sopra, crea un oggetto di Factorial. Quindi, usando quell'oggetto, chiama il metodo fattoriale. E, il metodo ottiene il valore 4. Quindi, la sezione else viene eseguita. In seguito chiama fattoriale (3). Quindi, la sezione else viene eseguita. Chiama fattoriale (2). Successivamente, viene eseguita la sezione else. Chiama factorial (1) e la sezione else viene eseguita nuovamente. Chiama fattoriale (0). Ora n è 0. Restituisce 1. Infine, 1x2x3x4 = 24 viene restituito e quei valori vengono visualizzati sullo schermo. Allo stesso modo, una funzione fattoriale si richiama continuamente.

Cos'è il ciclo

A volte è necessario eseguire ripetutamente un blocco di codice. I linguaggi di programmazione forniscono una struttura di controllo chiamata loop per eseguire una serie di istruzioni. Loop esegue una dichiarazione all'interno del blocco una dopo l'altra. Ci sono tre tipi di loop come while loop, for loop e do while loop. Inoltre, a iterazione si riferisce anche a un ciclo.

Mentre Loop

Un ciclo while contiene un'espressione di test. Se quell'espressione è vera, vengono eseguite le istruzioni all'interno del ciclo while. Alla fine delle affermazioni, controlla di nuovo l'espressione di test. Quindi, questo processo si ripete fino a quando l'espressione di test diventa falsa. Quando l'espressione di test è falsa, il ciclo while termina. Quindi il controllo passa alla prima istruzione dopo il ciclo while.

Figura 2: programma con ciclo while

Nel programma precedente, x è 5. È inferiore a 10. Pertanto, stamperà. Quindi, gli incrementi del valore x. Ora, x è 6. È anche inferiore a 10; quindi, stamperà. Quindi di nuovo gli incrementi del valore x. Ora x è 7. Quindi, questo processo si ripete. Quando x è 10, la condizione è falsa e il ciclo termina.

Per Loop

Per ciclo contiene l'inizializzazione, l'espressione di test e l'aggiornamento. L'espressione di inizializzazione viene eseguita una volta. Quindi, valuta l'espressione di test. Se è vero, vengono eseguite le istruzioni all'interno di for loop. Alla fine del ciclo, valuta l'espressione aggiornata. Pertanto, questo processo si ripete finché l'espressione di test non è falsa. Quando è falso, il ciclo termina. Quindi, il controllo passa all'istruzione successiva dopo ciclo.

Figura 3: programma con For Loop

Nel ciclo sopra per, il valore x è 1. È inferiore a 5. Quindi, il valore verrà stampato. Quindi il valore x aumenta di 1. Ora il valore x è 2. È anche inferiore a 5. Pertanto, verrà stampato. Poi di nuovo, il valore x aumenta di 1. Ora, x è 3. Questo processo si ripete. Quando x è 6, la condizione di test diventa falsa e il ciclo termina.

Do While Loop

Il ciclo while è simile al ciclo while, ma verifica la condizione dopo l'esecuzione delle istruzioni del ciclo. Pertanto, se la condizione è vera o falsa, il ciclo viene eseguito almeno una volta. Qui, il controllo della condizione si verifica dopo l'esecuzione del ciclo. Se la condizione è vera, le istruzioni del ciclo verranno eseguite nuovamente. Questo processo si ripete finché la condizione diventa falsa.

Figura 4: Programma con Do While Loop

Il valore x è inizialmente 5. Il ciclo while esegue e stampa il valore 5. Quindi, x diventa 6. È inferiore a 10. Quindi 6 stamperà. Quindi, x diventa 7. È anche inferiore a 10. E, questo processo si ripete. Quando x è 9, il valore viene stampato. Ma, quando x diventa 10, la condizione diventa falsa. Pertanto, il ciclo termina.

Ad esempio, supponiamo che x sia inizialmente 20. Stamperà 20. Quindi x aumenterà e x diventerà 21. La condizione di test è falsa. Pertanto, interromperà il ciclo. Il valore 20 è superiore a 10 e la condizione di test è falsa. Tuttavia, il ciclo viene eseguito una sola volta. Pertanto, do while loop viene eseguito almeno una volta.

Differenza tra ricorsione e loop

Definizione

La ricorsione è un metodo per chiamare una funzione all'interno della stessa funzione. Al contrario, il ciclo è una struttura di controllo che consente di eseguire ripetutamente un blocco di codice all'interno del programma. Queste definizioni contengono la differenza fondamentale tra ricorsione e loop.

Velocità

La velocità è una grande differenza tra ricorsione e loop. L'esecuzione della ricorsione è più lenta. Tuttavia, il ciclo viene eseguito più rapidamente della ricorsione.

Pila

In ricorsione, lo stack viene utilizzato per memorizzare le variabili locali quando viene chiamata la funzione. Ma il ciclo non usa lo stack.

Condizione

Se non c'è una condizione di terminazione, può essere una ricorsione infinita. Tuttavia, se la condizione non diventa mai falsa, sarà un ciclo infinito. Questa è un'altra differenza tra ricorsione e loop.

Complessità dello spazio

Inoltre, la complessità spaziale del programma ricorsivo è superiore a un ciclo.

Leggibilità del codice

Un'altra differenza tra ricorsione e loop è che un programma con ricorsione è più leggibile di un programma con cicli.

Conclusione

La differenza tra ricorsione e ciclo è che la ricorsione è un meccanismo per chiamare una funzione all'interno della stessa funzione mentre il ciclo è una struttura di controllo che consente di eseguire un insieme di istruzioni ancora e ancora fino a quando la condizione data è vera.

Riferimento:

1. "Ricorsione (Informatica)." Wikipedia, Wikimedia Foundation, 12 settembre 2018, disponibile qui.
2. "Java Loop Control." Www.tutorialspoint.com, disponibile qui.