1
resposta

Return: e se eu quiser mostrar mais do que o IMC?

E se eu quiser que o return mostre não apenas o imc mas também uma mensagem de texto? (verifique as // que coloquei no código abaixo)

<meta charset="UFT=8">
<script>
    function oneline(){
        document.write("<br>");
    }
    function docw(text){
        document.write(text);
        oneline();
    }

    function calculaImc(altura, peso){
        var imc = peso / (altura * altura);
        return imc
        //se eu quiser colocar um document.write aqui junto do resultado, preciso usar outro return?
    }

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

docw("o imc do Flavio é de " + imcFlavio + " e o imc do meu amigo é de " + imcAmigo)

docw("A soma dos dois imc's são de " + (imcFlavio + imcAmigo));

</script>
1 resposta

Olá Alexander,

Então não é possível fazer duplo retorno com javascript , quaquer coisa que você colocar após o:

return imc

Será completamente ignorado pelo javascript, o que podemos fazer nesse caso é executar a função e depois retornar algo:

    function calculaImc(altura, peso){
        var imc = peso / (altura * altura);
    document.write(imc);
        return imc
    }

E temos uma questão também que é, precisamos devolver um valor com o return, se fizéssemos por exemplo:

var imcFlavio = calculaImc(1.71, 73);

E o nosso código fosse

    function calculaImc(altura, peso){
        var imc = peso / (altura * altura);
    return document.write(imc);
    }

Teríamos um problema pois o javascript executaria o document.write(imc) e o retorno dessa função é vazio

return document.write(imc);
// Executou a função (escreveu no `html` mas não retorna nada)
return undefined

Então no caso a nossa variável imcFlavio teria o valor undefined que é o valor padrão para funções que não devolvem nada :)

Não sei se já viu, ou ainda vai ver, mas ao longo do curso iremos aprender algumas estrutura de dados como o array, que nada mais é do que um vetor, dessa maneira conseguímos retornar mais de uma informação, onde cada posição do vetor é um valor!

Conseguiu Compreender?

Qualquer coisa estou à disposição!

Abraços e Bons Estudos :)