Olá, Rodrigo!!
Tudo joinha?
Muito bem observado, Rodrigo!
O código tem erro mesmo.
Mas qual será o erro?
Você conseguiu perceber onde está?
Bom, vamos por partes.
Aqui, rodei o programa com o código desta postagem e a saída no navegador foi esta aqui:
Flavio tem 39 anos
Joaquim tem 20 anos
Barney tem 41 anos
A média das idades é de 34 anos.
A idade de Flávio é 40 anos.
A idade de Joaquim é 21 anos.
A idade de Barney é 41 anos.
Ok, este código foi gerado na aula anterior e serviu para o professor demonstrar o uso de variáveis, como declarar e atribuir valor, como alterar o valor que a variável recebe, coisas assim.
Podemos observar que na linha 11 do código o professor reatribuiu o valor da variável ano
para 2017.
Isso ele fez antes de declarar o comando que exibe a idade de Barney, justamente para demonstrar como o JavaScript percorre o código, lendo os comandos e realizando as ações. Nas idades de Flávio e Joaquim ano
recebe o valor 2016, já para Barney ano
recebe 2017.
Acredito que este detalhe tenha passado desapercebido. Tanto que a idade de Barney, na verdade, não é 41 anos e sim 40, já que ele nasceu em 1976, sendo apenas um ano mais velho do que Flávio, que tem 39 anos e nasceu em 1977.
Retirando esta reatribuição da variável ano
(linha 11) o código volta a funcionar corretamente, os cálculos ficam certos, a saída no navegador fica coerente e este "ajuste" não atrapalha a demonstração pretendida pelo professor a esta aula.
Assim será possível alterar o valor da variável ano
e todos os cálculos também serão alterados automagicamente
.
O código ficaria assim:
<meta charset="UTF-8">
<script>
var ano = 2016;
document.write("Flavio tem " + (ano - 1977) + " anos" );
document.write("<br>");
document.write("Joaquim tem " + (ano - 1996) + " anos" );
document.write("<br>");
document.write("Barney tem " + (ano - 1976) + " anos" );
document.write("<br>");
var idadeFlavio = ano - 1977;
var idadeJoaquim = ano - 1996;
var idadeBarney = ano - 1976;
var media = (idadeFlavio + idadeJoaquim + idadeBarney)/3;
document.write( 'A média das idades é de ' + Math.round (media) + " anos." );
document.write("<br>");
var nome = "Flávio";
document.write("A idade de " + nome + " é " + idadeFlavio + " anos.");
document.write("<br>");
nome = "Joaquim";
document.write("A idade de " + nome + " é " + idadeJoaquim + " anos.");
document.write("<br>");
nome = "Barney";
document.write("A idade de " + nome + " é " + idadeBarney + " anos.");
document.write("<br>");
</script>
E a saída no navegador ficaria assim:
Flavio tem 39 anos
Joaquim tem 20 anos
Barney tem 40 anos
A média das idades é de 33 anos.
A idade de Flávio é 39 anos.
A idade de Joaquim é 20 anos.
A idade de Barney é 40 anos.
Alterando o ano para 2022, a saída no navegador será:
Flavio tem 45 anos
Joaquim tem 26 anos
Barney tem 46 anos
A média das idades é de 39 anos.
A idade de Flávio é 45 anos.
A idade de Joaquim é 26 anos.
A idade de Barney é 46 anos.
Acho que é isso!!
Novamente, parabéns por seu olhar atento, programar é isso.
Abs e bons estudos!!