1
resposta

Cálculo da média dentro do While

Estou com uma dúvida. Beleza, já entendi que a variável contadora (totalGastoComEventos) deve estar localizada FORA da estrutura de repetição, pois senão a cada loop a variável será zerada. Mas eu não consigo entender o motivo pelo qual a variável que calcula a média deve ficar dentro da estrutura de repetição. Por ficar dentro do while, a cada loop essa média é calculada? Ou por trás dos panos o computador já sabe que só deve calcular a média no fim do último loop?

    var contador = 1;
    var totalGastoComEventos = 0;


    while(contador <= totalDeEventos) {

        var gasto = parseFloat(prompt("Informe total gasto com evento"));
        totalGastoComEventos = totalGastoComEventos + gasto;
        contador++;
       ** var media = totalGastoComEventos / totalDeEventos;**
    }



    mostra("A média de gastos é " + media);
</script>
1 resposta

Fala Giulio... beleza?

Referente a sua dúvida "a cada loop essa média é calculada?" a resposta é SIM... Nesse exemplo que passou cada iteração ou cada vez que o loop roda, a média é calculada com o novo valor da variável totalGastoComEventos. Se quiser "ver" isso acontecendo, coloque um alert pra mostar o valor de media antes e outro depois da atribuição do valor dela. Aí você vai ver ela sendo incrementada dentro do laço.

MAS.... nesse exemplo, a atribuição da média poderia sim estar fora do loop porque o laço meio que serve apenas para somar (acumular) na variável totalGastoComEventos o valor de cada evento individual que foi realizado...

Fiz um teste aqui com média fora do loop e o resultado é o mesmo.... ;)

Espero ter ajudado.....

<meta charset="UTF-8">

<script>

    var contador = 1;
    var totalGastoComEventos = 0;
    var totalDeEventos = parseInt(prompt("Quantos eventos foram realizados?"));


    while(contador <= totalDeEventos) {

        var gasto = parseFloat(prompt("Informe total gasto com evento"));
        totalGastoComEventos = totalGastoComEventos + gasto;
        contador++;
    }

    var media = totalGastoComEventos / totalDeEventos;

    document.write("A média de gastos é " + media);

</script>