Evita el Uso de Expresiones Complejas en las Condiciones del Bucle
1. Evita el Uso de Expresiones Complejas en las Condiciones del Bucle #
Las expresiones complejas dentro de las condiciones de un bucle pueden ralentizar la ejecución del programa, especialmente si involucran cálculos innecesarios o repetitivos en cada iteración. Para optimizar el rendimiento y mejorar la legibilidad del código, es recomendable calcular valores constantes antes del bucle y simplificar las condiciones.
2. Ejemplo incorrecto: Expresión compleja dentro de la condición del bucle #
Aquí la condición del bucle realiza una operación de cálculo en cada iteración.
Problema: #
- La función
calcularLimite()se llama en cada iteración, haciendo que el bucle sea menos eficiente. - Si
array.lengthno cambia dentro del bucle, no es necesario recalcular el límite constantemente.
3. Ejemplo optimizado: Calcular el valor antes del bucle #
Aquí movemos el cálculo fuera del bucle y almacenamos el valor en una variable.
✅ Beneficios:
- Evita cálculos innecesarios en cada iteración.
- Mejora la eficiencia del bucle, reduciendo el tiempo de ejecución.
- El código es más fácil de leer y mantener.
4. Ejemplo incorrecto: Condiciones innecesariamente complejas en el bucle #
Aquí se realizan múltiples cálculos y evaluaciones en cada iteración.
Problema: #
- Se ejecuta
calcularValor(array[i])en cada iteración del bucle, lo que ralentiza la ejecución. - La condición del bucle es difícil de leer y entender.
5. Ejemplo optimizado: Precalcular valores antes del bucle #
Aquí calculamos valores antes de entrar en el bucle.
✅ Beneficios:
- Se reduce la cantidad de cálculos en cada iteración.
- El código es más legible y fácil de depurar.
- Mayor eficiencia en bucles con muchas iteraciones.
6. Ejemplo incorrecto: Uso de funciones dentro de la condición del bucle #
A continuación, un ejemplo donde una función se ejecuta innecesariamente en cada iteración.
Problema: #
obtenerLongitud(array)devuelve siempre el mismo valor, por lo que llamarla en cada iteración es redundante.
7. Ejemplo optimizado: Almacenar el valor antes del bucle #
Resumen del tema
Conceptos clave #
- Evaluación Repetitiva de Condiciones: la cláusula condicional de un bucle
forowhilese evalúa en cada iteración; invocar funciones o realizar aritmética allí genera un cuello de botella. - Pre-cálculo de Límites de Parada: calcular y almacenar el límite final o longitud del arreglo en una variable local previo al inicio del bucle.
- Legibilidad y Simplificación Lógica: desacoplar condiciones compuestas en evaluaciones paso a paso dentro del cuerpo o mediante variables descriptivas.
Qué debes recordar #
Precalcula las condiciones y límites de parada antes de iniciar un bucle para evitar ejecuciones redundantes de funciones en cada iteración.