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

[Dúvida] 06 - Loop infinito

Olá! Tudo bem, pessoal? Eu gostaria de um explicação melhor desta atividade, pois não entendi direito.


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

Poderiam me ajudar, por favor?

1 resposta
solução!

Oi, Crislaine. Vou tentar explicar da forma que eu uso para entender, ok? Veja se lhe ajuda

Resumo: O algoritmo pergunta do usuário quantos números serão utilizados para calcular média; depois recebe os números e faz um somatório deles, para então calcular a média (somatório dos números / pela quantidade de números) e mostrar no console.

// Perguntar quantos números serão utilizados pra calcular média
let qtdNumeros = prompt('Digite a quantidade de números para o cálculo da média:');
let soma = 0; 
// Iniciar o contador baseado na quantidade de números
let contador = qtdNumeros;

// Enquanto o contador for maior que 0:
while(contador > 0){
    // Peça ao usuário para inserir um número
    let numero = parseInt(prompt('Digite o numero:'));
    // Some esse número ao valor que já tem em soma
    soma += numero;
    // Para evitar o loop infinito, mude o contador subtraindo 1
    // Cada vez que entrar no while, o contador diminui em 1, até chegar no valor 0 e então o loop acaba
    contador--;  // ou contador = contador - 1;
}

let media = soma / qtdNumeros;
console.log(media);

/*
Aplicando em um exemplo:
qtdNumeros = 3;
contador = qtdNumeros;  // contador = 3;
while 3 > 0 {
    pede número
    soma número ao valor da soma;
    contador = 3-1  // contador = 2 
}
while 2 > 0 {
    pede número
    soma número ao valor da soma;
    contador = 2-1  // contador = 1
}
while 1 > 0 {
    pede número
    soma número ao valor da soma;
    contador = 1-1  // contador = 0
}
while 0 > 0 {...} FALSO - Não entra no loop, segue o resto do código

Se tivesse dado como números, por exemplo: 7, 9, 5
A soma seria: 21
Média seria: 21/3 = 7
*/

O mais importante para evitar o loop infinito é mudar o contador, do contrário, a condição do while nunca deixa de ser verdadeira. Espero ter ajudado, mas se não tiver sido clara, é só comentar que tento responder.