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

[Projeto] 06. Loop infinito

let qtdNumeros;

do {
  qtdNumeros = parseInt(prompt('Digite a quantidade de números para o cálculo da média:'));
  if (isNaN(qtdNumeros) || qtdNumeros <= 0) {
    alert("Quantidade inválida! Por favor, digite um número inteiro positivo.");
  }
} while (isNaN(qtdNumeros) || qtdNumeros <= 0);

let soma = 0;
let contador = qtdNumeros;

while (contador > 0) {
  let input = prompt(`Digite o número ${qtdNumeros - contador + 1}:`);
  if (input === null) {
    console.log("Entrada cancelada pelo usuário.");
    break;
  }

  let numero = Number(input);
  if (isNaN(numero)) {
    alert("Número inválido, tente novamente.");
    continue;
  }

  soma += numero;
  contador--;
}

if (contador === 0) {
  let media = soma / qtdNumeros;
  console.log(`Soma: ${soma}`);
  console.log(`Quantidade de números: ${qtdNumeros}`);
  console.log(`Média: ${media.toFixed(2)}`);
} else {
  console.log("Cálculo abortado.");
}
3 respostas
solução!

Olá, Infocastell!

Pelo que você descreveu, parece que o seu código está funcionando bem para calcular a média de uma quantidade de números fornecida pelo usuário, a menos que o usuário cancele a entrada, o que interrompe o loop. No entanto, se você está enfrentando um loop infinito, pode ser interessante verificar algumas partes do código.

Aqui estão algumas dicas para garantir que tudo funcione corretamente:

  1. Validação da entrada: O seu do-while para garantir que qtdNumeros seja um número inteiro positivo está correto. Isso evita que o loop continue com uma quantidade inválida de números.

  2. Loop de entrada de números: No while que coleta os números, você está decrementando o contador corretamente, o que deve impedir um loop infinito, desde que qtdNumeros seja um valor positivo.

  3. Cancelamento de entrada: O código está preparado para lidar com a situação em que o usuário cancela a entrada (input === null), o que é ótimo para evitar loops indesejados.

Se ainda assim estiver enfrentando problemas, aqui estão algumas sugestões:

  • Teste com diferentes entradas: Tente testar com várias entradas, incluindo números válidos e inválidos, para ver como o programa se comporta.

  • Verifique o ambiente de execução: Às vezes, o comportamento pode variar dependendo do ambiente onde o código está sendo executado (navegador, editor de código, etc.). Certifique-se de que o ambiente está configurado corretamente para executar JavaScript.

Espero ter ajudado e bons estudos!

Desculpe, só estava compartilhando a solução que deu certo. O título é o tópico que estou estudando. Desculpe pelo tempo. O código está funcionando e depurei em vários cenários também.

Tranquilo! Se deu certo, deu certo!

Abração!