¿Cuál es la diferencia entre recursión y bucle?

los diferencia principal entre recursion y loop es eso recursión es un mecanismo para llamar a una función dentro de la misma función mientras que bucle es una estructura de control que ayuda a ejecutar un conjunto de instrucciones una y otra vez hasta que la condición dada sea verdadera.

Recursión y bucle son dos conceptos de programación. Ambas técnicas ayudan a desarrollar programas pequeños y complejos..

Áreas clave cubiertas

1. Que es la recursion
- Definición, Funcionalidad
2. Que es loop
- Definición, Funcionalidad
3. ¿Cuál es la diferencia entre recursión y bucle?
- Comparación de diferencias clave

Términos clave

Do While Loop, For Loop, Loop, Recursion, While Loop

Que es la recursion

Cuando una función se llama a sí misma dentro de la función, se llama recursión. Un ejemplo de un programa con recursión es el cálculo factorial..

¡norte! = n * (n-1) !, si n> 0

¡norte! = 1, si n = 0;

Figura 1: Programa factorial en Java

Según el programa anterior, crea un objeto de factorial. Luego, utilizando ese objeto, llama al método factorial. Y, el método obtiene el valor 4. A continuación, la sección else se ejecuta. A continuación se llama factorial (3). Entonces, la sección else se ejecuta. Se llama factorial (2). A continuación, se ejecuta la sección else. Llama factorial (1), y la sección else se ejecuta de nuevo. Se llama factorial (0). Ahora n es 0. Devuelve 1. Finalmente, se devuelve 1x2x3x4 = 24, y esos valores se muestran en la pantalla. Así mismo, una función factorial se llama una y otra vez..

Que es loop

A veces es necesario ejecutar un bloque de código repetidamente. Los lenguajes de programación proporcionan una estructura de control llamada bucle para ejecutar un conjunto de instrucciones. Loop ejecuta una sentencia dentro del bloque una tras otra. Hay tres tipos de bucles como bucle while, bucle for y bucle while. Por otra parte, un iteración también se refiere a un bucle.

Mientras bucle

Un bucle while contiene una expresión de prueba. Si esa expresión es verdadera, las declaraciones dentro del bucle while se ejecutan. Al final de las declaraciones, verifica la expresión de prueba nuevamente. Luego, este proceso se repite hasta que la expresión de prueba se vuelve falsa. Cuando la expresión de prueba es falsa, el bucle while termina. Luego el control pasa a la primera instrucción después del bucle while.

Figura 2: Programa con el bucle while

En el programa anterior, x es 5. Es menos de 10. Por lo tanto, se imprimirá. Entonces, el valor de x aumenta. Ahora, x es 6. También es menor que 10; Por lo tanto, se imprimirá. Luego, de nuevo, el valor de x aumenta. Ahora x es 7. Por lo tanto, este proceso se repite. Cuando x es 10, la condición es falsa y el bucle termina.

En bucle

For loop contiene la inicialización, expresión de prueba y actualización. La expresión de inicialización se ejecuta una vez. Luego, evalúa la expresión de prueba. Si es cierto, las instrucciones dentro de for loop se ejecutan. Al final del bucle, evalúa la expresión actualizada. Por lo tanto, este proceso se repite hasta que la expresión de prueba es falsa. Cuando es falso, el bucle termina. Luego, el control pasa a la siguiente instrucción después de for loop.

Figura 3: Programa con For Loop

En el bucle anterior, el valor de x es 1. Es menor que 5. Por lo tanto, el valor se imprimirá. Luego, el valor de x se incrementa en 1. Ahora el valor de x es 2. También es menor que 5. Por lo tanto, se imprimirá. Entonces, nuevamente, el valor de x se incrementa en 1. Ahora, x es 3. Este proceso se repite. Cuando x es 6, la condición de prueba se vuelve falsa y el bucle termina.

Hacer mientras bucle

El bucle while es similar al bucle while, pero comprueba la condición después de ejecutar las instrucciones del bucle. Por lo tanto, si la condición es verdadera o falsa, el bucle se ejecuta al menos una vez. Aquí, la comprobación de la condición ocurre después de que se ejecuta el bucle. Si la condición es verdadera, las instrucciones de bucle se ejecutarán de nuevo. Este proceso se repite hasta que la condición se vuelve falsa..

Figura 4: Programa con Do While Loop

El valor de x es inicialmente 5. El bucle do while se ejecuta e imprime el valor 5. Luego, x se convierte en 6. Es menor que 10. Por lo tanto, 6 se imprimirá. Luego, x se convierte en 7. También es menor que 10. Y, este proceso se repite. Cuando x es 9, se imprime el valor. Pero, cuando x se convierte en 10, la condición se vuelve falsa. Por lo tanto, el bucle termina.

Por ejemplo, suponga que x es inicialmente 20. Imprimirá 20. Luego x aumentará yx se convertirá en 21. La condición de prueba es falsa. Por lo tanto, terminará el bucle. El valor 20 es mayor que 10 y la condición de prueba es falsa. Sin embargo, el bucle se ejecuta una vez. Por lo tanto, do while loop se ejecuta al menos una vez..

Diferencia entre recursión y bucle

Definición

La recursión es un método para llamar a una función dentro de la misma función. En contraste, loop es una estructura de control que permite ejecutar un bloque de código repetidamente dentro del programa. Estas definiciones contienen la diferencia fundamental entre recursión y bucle..

Velocidad

La velocidad es una diferencia importante entre la recursión y el bucle. La ejecución de la recursión es más lenta. Sin embargo, el bucle se ejecuta más rápido que la recursión..

Apilar

En la recursión, la pila se utiliza para almacenar las variables locales cuando se llama a la función. Pero, el bucle no usa pila.

Condición

Si no hay una condición de terminación, puede ser una recursión infinita. Sin embargo, si la condición nunca se vuelve falsa, será un bucle infinito. Esta es otra diferencia entre recursión y bucle..

Complejidad espacial

Además, la complejidad del espacio del programa recursivo es más alta que un bucle.

Código legible

Otra diferencia entre recursión y bucle es que un programa con recursión es más legible que un programa con bucles.

Conclusión

La diferencia entre recursión y bucle es que la recursión es un mecanismo para llamar a una función dentro de la misma función mientras que el bucle es una estructura de control que permite ejecutar un conjunto de instrucciones una y otra vez hasta que la condición dada sea verdadera.

Referencia:

1. “Recursión (Informática)”. Wikipedia, Wikimedia Foundation, 12 de septiembre de 2018, disponible aquí.
2. "Java Loop Control". Www.tutorialspoint.com, disponible aquí.