Saltar al contenido principal
Codigo Heroe
Tarea anterior
Funciones11/19
A la lista de tareas
  1. 1. Cálculo de millas con variables
  2. 2. Condición para vuelos largos
  3. 3. Reutilizar variables sin declararlas de nuevo
  4. 4. Crear una función
  5. 5. Llamar a una función
  6. 6. Parámetros y argumentos
  7. 7. Orden de los argumentos
  8. 8. Devolver un valor con return
  9. 9. Parámetros booleanos
  10. 10. Guardar el resultado en una variable
  11. 11. Salida anticipada con return
  12. 12. Simplificar el cálculo con una variable
  13. 13. Agregar una condición al cálculo
  14. 14. Llamar a una función desde otra
  15. 15. Agregar un parámetro y redondear el resultado
  16. 16. Devolver y usar la cantidad de vuelos
  17. 17. Reutilizar los resultados de una función
  18. 18. Comparar los resultados
  19. 19. Llamar a funciones dentro de un ciclo
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

Salida anticipada con return

La cantidad de millas de recompensa en Cupcakeflot depende tanto de la clase como de la distancia. Para terminar el programa, podríamos agregar una comprobación de la distancia en cada rama que comprueba la clase del vuelo. Pero el código quedaría demasiado complicado.

La lógica del cálculo de porcentajes es algo compleja y queremos expresarla de la forma más sencilla y clara posible. Por eso, antes de agregar otra condición, cambiaremos la estructura del código sin cambiar su funcionamiento. Es decir, haremos una refactorización.

Mira el código de calculateMiles. Usamos dos veces la instrucción return, que detiene la ejecución de la función:

let calculateMiles = function (distance, isBusinessClass) {
  if (isBusinessClass) {
    return …;
  } else {
    return …;
  }
};

Si elegimos la clase ejecutiva, el programa ejecuta el código de la rama if y sale de la función. En ese caso no importa qué código venga después dentro de calculateMiles. Si elegimos la clase económica, el programa no entra en la primera rama y ejecuta el código que viene después de ella. Por eso la rama else no es necesaria aquí y podemos quitarla.

let calculateMiles = function (distance, isBusinessClass) {
  if (isBusinessClass) {
    return …;
  }
  return …;
};

Quienes desarrollan software refactorizan su código para que sea comprensible para sus colegas y para ellos mismos tiempo después, fácil de mantener y sin repeticiones ni estructuras enormes y complejas. Es como en la escuela: primero escribimos un borrador, probamos, tachamos y volvemos a probar hasta encontrar una solución. Después lo pasamos en limpio.

Todo el mundo refactoriza, incluso las grandes estrellas del desarrollo.

  • script.js
JavaScript
let calculateMiles = function (distance, isBusinessClass) { if (isBusinessClass) { return distance * 0.22; } else { return distance * 0.18; } // Mueve el código aquí }; let milesEconom = calculateMiles(3000, false); let milesBusiness = calculateMiles(3000, true); console.log('En clase económica de Cupcakeflot acumularás ' + milesEconom + ' millas'); console.log('En clase ejecutiva de Cupcakeflot acumularás ' + milesBusiness + ' millas');
Consola

El código ha cambiado, haga clic en "Ejecutar" o active la ejecución automática.

Resultado de la ejecución

ObjetivosRealizado
0
    1. Mueve el código del bloque else debajo de la estructura condicional.
    2. Elimina el bloque else { }.
    Codigo Heroe

    © 2023-2026, codigoheroe.com