3
respostas

Desafio loop infinito

Boa noite, vi algumas outras respostas da mesma dúvida que a minha, porém sinto que ainda não ficou claro para mim. Qual o problema de ter um loop infinito nesse caso? O objetivo não é tirar sempre a média? qual o intuito do += nesse caso? se sempre a soma vai ser 0, por que não é melhor por só soma = numero? seria correto por um alert(A média do seu número é: ${media})? ao invés de só por no console.log?


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

Sigo no aguardo de uma resposta!

Olá, Hugo! Tudo bem?

O problema de um loop infinito é que ele pode fazer com que seu programa nunca termine de executar, o que pode causar travamentos e consumir muitos recursos do sistema. No código que você compartilhou, o loop se torna infinito porque a variável contador nunca é decrementada, então a condição contador > 0 é sempre verdadeira.

Para corrigir isso, você deve decrementar o contador em cada iteração do loop, assim:

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

Sobre o operador +=, ele é um atalho para soma = soma + numero. Isso significa que o valor de numero é adicionado ao valor atual de soma. Se você usasse soma = numero, estaria substituindo o valor de soma pelo valor de numero a cada iteração, o que não permitiria calcular a soma total.

Por fim, o Alert vs console.log: você pode usar alert em vez de console.log se quiser exibir a média para o usuário de uma forma mais visível. No entanto, alert é geralmente usado para mensagens curtas e simples, enquanto console.log é mais adequado para depuração e para exibir informações mais complexas. De forma resumida, o alert você usará para mostrar informações na página HTML e o console.log você mostrará informações no terminal.

Portanto, o código corrigido ficaria assim:

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

let media = soma / qtdNumeros;

alert(`A média do seu número é: ${media}`);

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

excelente explicação me ajudou muito a entender