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

[Duda] Definitivamente no comprendo CONTADOR --

Este es el codigo

let qtdNumeros = prompt('Digite la cantidad de números para el cálculo del promedio:'); let soma = 0; let contador = qtdNumeros;

while(contador > 0){ let numero = parseInt(prompt('Digite el numero:')); soma += numero; }

let promedio = soma / qtdNumeros;

console.log(promedio);

Y me dice la respuesta es:

Cuando utilizamos bucles con contadores, debemos asegurarnos de que en algún momento alcancen la condición de parada del bucle. En el código anterior, el contador no tiene su valor alterado, y para resolver el bucle infinito, simplemente debes decrementarlo en cada iteración, agregando la línea 'contador--' dentro del bucle.

Al decrementar el valor de la variable contador en cada iteración, eventualmente será menor o igual a 0, lo que detendrá la ejecución del bucle.

El problema radica en que nisiquiera entiendo el bucle.

5 respuestas

Inicialización del contador:

Tienes una variable llamada qtdNumeros que se establece en 2 (en este ejemplo). Creas una variable contador que se inicializa con el valor de qtdNumeros. En este caso, contador sería 2. Bucle While:

Utilizas un bucle while que se ejecutará mientras la condición sea verdadera. La condición es que contador debe ser mayor que 0. Bloque de código dentro del bucle:

Dentro del bucle, solicitas al usuario que ingrese un número y lo sumas a una variable llamada soma. Decremento del contador:

Al final del bloque de código dentro del bucle, decrementas el valor de contador en 1 (contador--). Verificación de la condición:

Después de decrementar el contador, se verifica si contador es mayor que 0. Si es verdadero, el bucle se ejecuta nuevamente. Si es falso (cuando contador llega a 0), el bucle se detiene y se sale. En resumen, el bucle se ejecuta hasta que el contador alcanza 0. Cada vez que el bucle completa una iteración, el contador disminuye en 1, y cuando el contador llega a 0, el bucle se detiene. Esto asegura que el usuario ingrese números la cantidad de veces especificada por qtdNumeros y luego termina.

Espero que te sirva.

let qtdNumeros = prompt('Digite la cantidad de números para el cálculo del promedio:');
let suma = 0;
let contador = 0;

while(qtdNumeros > contador){
    let numero = parseInt(prompt('Digite el numero:'));
    suma += numero;
    contador++; // incrementamos el contador en 1.
}

let promedio = suma / qtdNumeros;

console.log(promedio);

Imagina que estás jugando a un juego en el que tienes que adivinar un número secreto. El juego te va pidiendo números uno a uno, y si aciertas, ganas. Si no aciertas, el juego te pide otro número.

El bucle while en el código funciona de manera similar. El bucle se ejecutará mientras la condición contador > 0 sea verdadera. En este caso, la condición es verdadera al principio, porque el valor inicial de la variable contador es igual a la cantidad de números que el usuario quiere ingresar.

Cada vez que el bucle se ejecuta, el juego te pide un número. Si aciertas, el juego se detiene. Si no aciertas, el juego decrementa el valor de la variable contador en 1.

El bucle se ejecutará hasta que el valor de contador sea menor o igual a 0. En ese momento, la condición contador > 0 será falsa y el juego se detendrá.

La solución al problema del bucle infinito es agregar la línea contador--; dentro del bucle. Esta línea decrementa el valor de la variable contador en 1 en cada iteración del bucle.

Con este cambio, el valor de contador se decrementará en 1 en cada iteración del bucle. Esto significa que el bucle se ejecutará un número de veces igual a la cantidad de números que el usuario quiere ingresar.

En el ejemplo del juego de adivinar el número secreto, la línea contador--; se traduciría en que el juego te pidiera un número menos cada vez que no aciertes.

Si este post te ayudó, por favor, marca como solucionado. Exitos en los estudios.

Gracias gonzalo, habia visto la respuesta en otro post, pero con tu explicacion realmente entendi lo que estaba pasando

Muchas Gracias Francisco!

Si este post te ayudó, por favor, marca como solucionado. Exitos en los estudios.