Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] Bucle Infinito

Me parecio interesante el bucle infinito, pero con el código ya arreglado. ¿Qué pasaría si el usuario ingresa una cantidad de números igual a 0 ¿El programa calcularía el promedio correctamente o daría un error? No realize este código por cuestiones de tiempo, pero si alguien puede darme esa respuesta se lo agradecería mucho.

2 respuestas

Hola, excelente observación, en JavaScript, si haces una división donde el divisor es cero, el resultado no lanza un error como en otros lenguajes, sino que devuelve:

número / 0  //Infinity
0 / 0  //NaN (que significa "Not a Number")

Esto lo hace así porque JavaScript está basado en el estándar IEEE 754, el cual prefiere devolver valores especiales (Infinity, NaN) en vez de romper el programa con un error.

Esto permite que el resto del código siga funcionando, aunque haya ocurrido algo matemáticamente incorrecto.

Ejemplo:

console.log(10 / 0); // Infinity
console.log(0 / 0);  // NaN

Entonces, si en el ejercicio el usuario ingresa 0 como cantidad de números, el cálculo del promedio haría algo como:

let promedio = suma / 0; // suponiendo suma = 0

Y eso devolvería NaN, no error, pero eso no tiene sentido para el usuario, por eso es mejor validar ese caso antes de entrar al bucle.

let cantidadNumeros = parseInt(prompt('Ingrese la cantidad de números para el cálculo del promedio:'));

if (cantidadNumeros > 0) {
  let suma = 0;
  let contador = cantidadNumeros;

  while (contador > 0) {
    let numero = parseFloat(prompt('Ingrese un número:'));
    suma += numero;
    contador--;
  }

  let promedio = suma / cantidadNumeros;
  console.log(`El promedio es: ${promedio}`);
} else {
  console.log('La cantidad de números debe ser mayor que cero.');
}

Gracias, por la duda y por la explicación. Tambien venia con una duda algo similar, me alegra ver sus intervenciones :D