Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Loop Infinito Refeito

//Loop Infinito Refeito
let qtdNumeros = contador = prompt('Digite a quantidade de números para o cálculo da média:'); //Declarando multiplas variáveis na mesma linha e atribuindo o valor do prompt a elas.
let soma = 0; //Declarando variável soma e atribuindo valor 0.

console.log(`A quantidade de números para o cálculo da média é: ${qtdNumeros}\nO valor do contador é: ${contador}\nA soma é: ${soma}`); //Criando um log das variáveis para entender o que rola.
console.log(`O contador é maior que zero: ${0 < contador}`); //Log da comparação do contador.

while(0 < contador) //Começando o loop até que o contador seja menor ou igual a zero.
{ 
    soma += parseFloat(prompt('Digite o numero:')); //Convertendo para float e somando o valor inserido no prompt.
    contador--; //Diminuindo o contador.
}

console.log(soma/qtdNumeros); //Fazendo o log da média.
alert(soma/qtdNumeros); //Exibindo a média.
7 respostas
solução!

Oi, Leonardo! Tudo bem?

Parabéns pela resposta e muito obrigada por ter compartilhado o seu código com a nossa comunidade do fórum, tenho certeza que servirá de grande ajuda e inspiração para muitos colegas!

Para contribuir, deixo como sugestão para estudo uma forma diferente de organização do código, deixando-o da seguinte maneira:

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--; // decrementando o contador
}

let media = soma / qtdNumeros;

console.log(media);

Somado a isso, caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Boa noite, pessoal copiei esse script apresentados aqui no forúm no visual studio pelos instrutores Sarah Ocy e Lucas Ribeiro e o looping continua

Fica minha dúvida que algo não continua correto, podem rever e informar qual seria realmente a solução?

Scripit sugerido pelos instrutores:

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--; // decrementando o contador }

let media = soma / qtdNumeros;

console.log(media);

estou com o mesmo problema, mesmo inserindo o decremento o looping continua.

Lembraram de salvar? Aqui ambos funcionam.

Boa tarde a todos, eu enviei a minha ideia de alteração para o problema proposto e ganhei um quase lá mas, não resolveu o problema do looping e acabei limitando a quantidade de números que o usuário deseja inserir, além de incrementar o contador em vez de subtrair esse é a alteração que propus :

let qtdNumeros = prompt('Digite a quantidade de numeros para o calculo da media:'); let soma = 0; let contador = qtdNumeros;

while(contador <= 10) { let numero = parseInt(prompt('Digite o numero:')); soma += numero; contador = contador + 1;

}

let media = soma / qtdNumeros;

console.log(media);

Depois segui a orientação dada pela Monitora Sarah mas, o erro ainda persiste mesmo depois de inserido e decremento no contador alguém tem alguma sugestão do falta ?

Rodrigo esse é o seu código:

let qtdNumeros = prompt('Digite a quantidade de numeros para o calculo da media:'); 
let soma = 0; 
let contador = qtdNumeros;

while(contador <= 10) { //Com essa condição o loop só para ao atingir o valor 11.
    let numero = parseInt(prompt('Digite o numero:')); 
    soma += numero; 
    contador = contador + 1; //Essa linha está somando e não decrementando.
}

let media = soma / qtdNumeros;

console.log(media);

E essa aqui é a correção:

let qtdNumeros = prompt('Digite a quantidade de numeros para o calculo da media:'); 
let soma = 0; 
let contador = qtdNumeros;

while(contador > 0) //O loop para quando o valor não for maior que zero.
{ 
    let numero = parseInt(prompt('Digite o numero:')); 
    soma += numero; 
    contador = contador - 1; //Essa é a linha que faz o decremento.
}

let media = soma / qtdNumeros;

console.log(media);

Certo entendi onde errei limitei os valores que o usuário poderia inserir e aumentei o contador ao invés de diminuir então no final das contas, o loop é interrompido quando são inseridos valores iguais a zero ou negativos.

Agradeço pela explicação Leonardo.