Alguém poderia me explicar de forma mais clara?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Alguém poderia me explicar de forma mais clara?
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.