Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Loops e tentativas - Loop infinito

Olá pessoal!

Eu li as respostas dos outros posts no fórum porém ainda não consegui entender a lógica por trás desse código.

Eu entendi que o problema é que o contador nunca é zerado, porém não entendi como isso funcionaria e exatamente para o que serviria o código... Sendo assim não consigo encontrar o sentido até a resposta final...

let qtdNumeros = prompt('Digite a quantidade de números para o cálculo da média:'); let soma = 0; let contador = qtdNumeros;

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

let media = soma / qtdNumeros;

console.log(media);

Agradeço desde já!

1 resposta
solução!

Olá Caio.

Vamos analisar o código linha por linha:

let qtdNumeros = prompt('Digite a quantidade de números para o cálculo da média:');

Solicita ao usuário a quantidade de números para calcular a média e armazena esse valor na variável qtdNumeros. let soma = 0;

Inicializa a variável soma com o valor zero. Esta variável será usada para armazenar a soma dos números inseridos. let contador = qtdNumeros;

Inicializa a variável contador com o mesmo valor fornecido pelo usuário em qtdNumeros. while(contador > 0){

Inicia um loop while que continua enquanto o valor de contador for maior que zero. let numero = parseInt(prompt('Digite o numero:'));

Solicita ao usuário a entrada de um número e converte o valor para um número inteiro usando parseInt. O valor é armazenado na variável numero. soma += numero;

Adiciona o valor de numero à variável soma. }

Fim do loop while. O loop continuará até que contador seja igual a zero. let media = soma / qtdNumeros;

Calcula a média dividindo a soma pelo número total de elementos (qtdNumeros). console.log(media);

Exibe a média no console. O problema aqui é que o valor de contador não é decrementado no loop, resultando em um loop infinito, pois a condição contador > 0 nunca se torna falsa. Portanto, a variável contador nunca é zerada, o que impede a saída do loop.

Para corrigir isso, você deve decrementar contador dentro do loop, assim:

javascript Copy code let qtdNumeros = prompt('Digite a quantidade de números para o cálculo da média:'); let soma = 0; let contador = qtdNumeros;

while (contador > 0) { let numero = parseInt(prompt('Digite o numero:')); soma += numero; contador--; // Decrementa o contador }

let media = soma / qtdNumeros;

console.log(media); Com essa correção, o loop será encerrado quando todos os números forem inseridos, e a média será calculada corretamente.

Espero que isso ajude a esclarecer suas dúvidas.