¡Hola Estudiante!
Gracias por compartir tu duda con nosotros. Entiendo que estás teniendo un problema con el desafío 2 y el uso del bucle while. Permíteme explicarte lo que está sucediendo.
En tu código, estás utilizando el bucle while para repetir la función total() hasta que la variable "numero" sea mayor que 0. Sin embargo, al final de cada iteración de la función total(), estás decrementando la variable "numero" en 1. Esto significa que eventualmente "numero" llegará a 0 y la condición del bucle while se cumplirá, lo que hace que el bucle se detenga.
El problema es que en la última iteración de la función total(), cuando "numero" es igual a 1, se realiza la multiplicación y el resultado se actualiza a 0. Luego, "numero" se decrementa a 0 y la condición del bucle while se cumple, lo que hace que se ejecute una última vez la función total(). En esta última iteración, la multiplicación se realiza con "numero" igual a 0, lo que resulta en un resultado de 0. Por eso obtienes un resultado final de 0.
Para solucionar este problema, puedes cambiar la condición del bucle while a "numero > 1" en lugar de "numero > 0". De esta manera, el bucle se detendrá cuando "numero" sea igual a 1 y no se ejecutará una última vez la función total(). Esto evitará que el resultado final sea 0.
Aquí está el código corregido:
let numero = 10;
let resultado = 1;
function total() {
resultado *= numero;
numero--;
return resultado;
}
while(numero > 1) {
total();
}
console.log(total());
Espero que esto aclare tu duda y te ayude a resolver el problema. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Estoy aquí para ayudarte!
Espero haber ayudado y buenos estudios!
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!