3
respostas

Não entendi

Alguém poderia me explicar de forma mais clara?

3 respostas

Olá, Gabriel.

Tudo bem?

O código que você está analisando é este:

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);

O problema aqui é que o contador nunca é alterado dentro do loop while. Isso faz com que a condição contador > 0 seja sempre verdadeira, resultando em um loop infinito.

Para resolver isso, você precisa decrementar o valor do contador a cada iteração do loop. Assim, o contador eventualmente chegará a 0, e o loop irá parar. A linha que falta no seu código é contador-- dentro do while.

Veja como o código deve ficar:

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 a cada iteração
}

let media = soma / qtdNumeros;

console.log(media);

Com essa alteração, o contador será decrementado a cada iteração do loop, eventualmente atingindo 0 e parando o loop.

Seria isso? Espero ter ajudado. Qualquer dúvida manda aqui.

Bons estudos!

Oi Gabriel.

Também estou iniciando nesse mundo, mas acho que entendi qual a sua dúvida.

Primeiro, vou definir 2 coisas pra facilitar: Números = N que vai inserir ( ex: vou inserir 2 valores) Valores = valor dos N (ex: 3 e 4);

A ideia é que qtdNumeros são quantos números você quer adicionar para o cálculo (que é a primeira box que abre). Após ela começa um loop de prompt, deixando digitarmos quais os valores do qual queremos fazer a média.

Contador = a qtdNumeros , portanto, é a quantidade de números que vamos querer calcular, e não os valores deles. Mas, a condição que está no while é (contador > 0), mas em nenhum momento tinhamos colocado para ele diminuir onúmero dos contadores a cada valor adicionado, foi aí que entrou o contador--, que vai se comportar como contador = contador - 1

ex: qtdNumero = 2 > queremos inserir dois valores e queremos a média deles. Rodando o programa, ele permite que coloquemos 2 valores. A cada valor inserido, ele tira um do contador de números a ser adicionado. Quando ele chega a 0, ele para, e no console podemos ver qual a média que ele calculou.

Espero ter ajudado (:

Muito obrigado Larissa, minha dúvida era exatamente essa.

Basicamente o loop infinito acontecia porque a quantidade de valores a serem calculados na média nunca chegava a 0, então o prompt para adição de valores continua a aparecer.