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

[Dúvida] Porque preciso reescrever o valor de uma variável para puxar corretamente o cálculo na formula?

Eu estava tentando fazer um código de forma que calculasse uma nova média das idades a cada ano e uma outra forma de mostrar a idade com as váriaveis, mas para funcionar precisei repetir ou ''relembrar'' os valores da variável a cada ano. Eu gostaria de entender o porque disso, pois eu imaginei que com a variável ja definida, ela iria calcular automaticamente. Deixei as linhas em questão com // no código abaixo:

<meta charset="UTF-8">

<script>

    var ano = 2023;
    var nascimentoRafael = 2001
    var idadeRafael = ano - nascimentoRafael
    var nascimentoJulia = 2005
    var idadeJulia = ano - nascimentoJulia
    var nascimentoGabriel = 1997
    var idadeGabriel = ano - nascimentoGabriel
    var media = (idadeRafael + idadeJulia + idadeGabriel)/3;
    var nome = "Rafael";

    ano = 2023
    document.write("<h1>" + "No ano de " + ano + "</h1>")
    document.write("<br>")
    document.write("Rafael terá " + (ano - nascimentoRafael) + " anos");
    document.write("<br>")
    document.write("Julia terá " + (ano - nascimentoJulia) + " anos");
    document.write("<br>")
    document.write("Gabriel terá " + (ano - nascimentoGabriel) + " anos");
    document.write("<br>")
    document.write("A média das idades é " + Math.round(media));
    document.write("<br>")
    document.write("A idade de " + nome + " em " + ano + " será " + idadeRafael);
    document.write("<br>")
    document.write("<br>")

    ano = 2024
    //idadeRafael = ano - nascimentoRafael
    //idadeJulia = ano - nascimentoJulia
    //idadeGabriel = ano - nascimentoGabriel
    //media = (idadeRafael + idadeJulia + idadeGabriel)/3;
    document.write("<h1>" + "No ano de " + ano + "</h1>")
    document.write("Rafael terá " + (ano - nascimentoRafael) + " anos");
    document.write("<br>")
    document.write("Julia terá " + (ano - nascimentoJulia) + " anos");
    document.write("<br>")
    document.write("Gabriel terá " + (ano - nascimentoGabriel) + " anos");
    document.write("<br>")
    document.write("A média das idades é " + Math.round(media));
    document.write("<br>")
    document.write("A idade de " + nome + " em " + ano + " será " + idadeRafael);

    ano = 2025
    //idadeRafael = ano - nascimentoRafael
    //idadeJulia = ano - nascimentoJulia
    //idadeGabriel = ano - nascimentoGabriel
    //media = (idadeRafael + idadeJulia + idadeGabriel)/3;
    document.write("<h1>" + "No ano de " + ano + "</h1>")
    document.write("Rafael terá " + (ano - nascimentoRafael) + " anos");
    document.write("<br>")
    document.write("Julia terá " + (ano - nascimentoJulia) + " anos");
    document.write("<br>")
    document.write("Gabriel terá " + (ano - nascimentoGabriel) + " anos");
    document.write("<br>")
    document.write("A média das idades é " + Math.round(media));
    document.write("<br>")
    document.write("A idade de " + nome + " em " + ano + " será " + idadeRafael);

</script>
2 respostas
solução!

Olá Rafael, tudo ok por aí ?

Peço desculpas pela demora em obter um retorno!

Na maioria das linguagens de programação, incluindo JavaScript, as variáveis são usadas para armazenar valores que podem ser alterados durante a execução do programa. Quando você reescreve o valor de uma variável, você está atualizando o valor armazenado na variável com um novo valor.

No caso desse código específico, a atualização das variáveis "idadeRafael", "idadeJulia" e "idadeGabriel" é necessária para que elas sejam atualizadas com as idades correspondentes ao novo valor de "ano".

Se você não atualizar essas variáveis, elas continuarão armazenando as idades antigas, e a média das idades e a idade de Rafael nos anos seguintes serão baseadas nessas idades antigas, em vez das novas idades corretas.

Caso você não faça isso o código não irá gerar o que você quer.

Em suma era isso, caso precise de mais algo recorra ao fórum novamente.

Caso este post tenha lhe ajudado, por favor marque ele como solução! ✓.

Estou bem, e você?

Perfeito, muito obrigado pelo esclarecimento!