1
resposta

Por que nao funciona quando coloco "return imcCalculado" ? Pensei assim pois o que a questão pedia era o retorno do imcCalculado. Descobri que era "return imc" mas não ficou claro porque não imcCalculado

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function calculaImc(altura, peso) {

        var imc = peso / (altura * altura)
        return imcCalculado;
    }

    var imcCalculado = calculaImc(1.77, 75);
    mostra("O meu IMC é : " + imcCalculado);
</script>
1 resposta

Fala, Diego! Tudo bem contigo?

Quando criamos a função calculaImc espera-se um retorno desse cálculo, porém esse retorno deve ser o que está sendo calculado dentro da função passado nos parâmetros

    function calculaImc(altura, peso) {

        var imc = peso / (altura * altura)
        return imc;
    }

Como quem está guardando a fórmula do cálculo é a variável imc, é ela quem deve ser retornada dentro da função.

A variável imcCalculado é quem chama essa função, passa os parâmetros a serem calculados e guarda o resultado que a função calculou.

Agora, faça o seguinte teste:

Substitua o returnpor mostradentro da função

    function calculaImc(altura, peso) {

        var imc = peso / (altura * altura)
        mostra(imc);
    }

Perceba que, depois dessa alteração, a variável imcCalculado e chamar o mostrapassa a não ter sentido. Basta chamar somente a função ;-)

calculaImc(1.77, 75);

pois, o mostrajá está "fazendo a função" do return. Acredito que fica mais enxuto.

Espero ter ajudado, Diego!

Um abraço e bons estudos!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software