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

Não deveriamos criar uma condição falsa para o while parar o looping?

Olá, me chamo Levi e senti muita dificuldade nesse exercício, vi muitas pessoas falando sobre a decrementação, mas não entendi na prática para o que serve. No caso do if, lemos como se fosse "se", while "enquanto" mas e essa decrementação ao final de "contador" que tanto estão falando no fórum? Como nós podemos ler isso e entender de maneira pratica a ultilização dessa função.

4 respostas
solução!

Olá, Levi!

Entendo que a lógica de programação pode ser um desafio no começo, mas com o tempo tudo vai ficando mais claro.

Vamos lá, quando estamos lidando com loops, como o while, precisamos de uma condição que eventualmente será falsa para que o loop pare. No seu caso, a condição é contador > 0. O loop continuará executando enquanto essa condição for verdadeira.

A "decrementação" é uma maneira de alterar o valor de uma variável, neste caso, diminuindo seu valor em 1 a cada iteração do loop. Quando você vê contador--, pode ler isso como "diminua o valor de contador em 1".

No exemplo do exercício, o contador começa com o valor de qtdNumeros (a quantidade de números que o usuário quer calcular a média) e a cada número que o usuário insere, o contador deve ser decrementado em 1 (contador--). Isso faz com que, eventualmente, o contador chegue a 0 e a condição do while (contador > 0) se torne falsa, parando o loop.

Vamos ver como ficaria o código com a decrementação:

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--; // Aqui está a decrementação
}

let media = soma / qtdNumeros;

console.log(media);

Com essa alteração, o código agora funciona como esperado, calculando a média dos números inseridos pelo usuário e evitando o loop infinito.

Bons estudos!

Boa noite Lucas Ribeiro Mata. Obrigado pela explicação. Eu demorei a enteder que seria preciso decrementar para chegar em uma condição falsa, para que o loop fosse encerrado. Conseguir fazer sozinho, depois de vários testes. E agora, vendo a sua explicação ficou muito mais claro.

Olá, Lucas Ribeiro Mata. Eu fiz exatamente o código que você disponibilizou mas continua não aparecendo a média aritmética. O loop para de carregar e o console mostra a quantidade de números que eu coloquei.

Tenho a impressão que declarar a variável "numero" dentro do loop todas as vezes não é uma boa prática. Mas também não tenho certeza como funciona em JavaScript