Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Porque não posso deixar a função mostra dentro da função calculaImc?

Porque não posso deixar a função mostra dentro da função calculaImc? Não entendi essa parte.

1 resposta
solução!

Oi João, tudo bem?

A função calculaImc() foi criada com o objetivo de realizar apenas o cálculo do IMC. Por isso, ela recebe a altura e o peso como parâmetros e retorna o resultado desse cálculo.

A ideia de manter a função mostra() fora da calculaImc() é para que possamos ter mais flexibilidade sobre como e onde queremos exibir os resultados.

Por exemplo, se colocássemos a função mostra() dentro da calculaImc(), sempre que chamássemos a calculaImc() ela faria o cálculo e já exibiria o resultado na tela. Mas e se quiséssemos, por exemplo, somar dois IMCs antes de exibir o resultado? Ou se quiséssemos enviar esse resultado por e-mail, ou salvar em um banco de dados? Teríamos que alterar a função calculaImc() para cada uma dessas situações.

Por outro lado, mantendo a função mostra() separada, podemos usar o resultado da calculaImc() da maneira que preferirmos. No exemplo do curso, primeiro calculamos os IMCs, depois somamos e só então exibimos o resultado:

var imcFlavio = calculaImc(1.71, 73);
var imcAmigo = calculaImc(1.72, 68);
var totalImc = imcFlavio + imcAmigo;

document.write("A soma dos imc's é " + totalImc);

Aqui, a função calculaImc() está apenas fazendo o cálculo e retornando o resultado. Quem decide o que fazer com esse resultado é o código que chamou a função.

Um abraço e bons estudos.