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

Classificação do IMC funciona com 'document.write' mas não com 'mostra'

Estou tendo um problema com document.write vs. mostra.

Na linha " mostra ("O seu IMC é de " + Math.round (imc))", não consigo fazer com que o programa mostre na tela a classificação do IMC. Trocando "mostra" por "document.write", tudo funciona, mas não consigo pular linha justamente pq não estou usando a "mostra".

Vi dúvidas semelhantes no fórum mas não encontrei respostas pra essa :(

<meta charset = "UTF-8">

<script>

    function pulaLinha(){

        document.write("<br");
        document.write("<br");

    }

    function mostra (frase){

        document.write (frase);
        pulaLinha();

    }

    function calculaImc (altura, peso){

        return peso/(altura*altura);

    }

    var nome = prompt("Informe seu nome");
    var alturaInformada = prompt( "Olá, " + nome + ", Informe sua altura (use . e não ,)");
    var pesoInformado = prompt ("Informe também o seu peso (kg)");

    var imc = calculaImc (alturaInformada, pesoInformado);

    mostra ("O seu IMC é de " + Math.round (imc));

    if (imc < 18.5) {


        mostra ("Seu peso está abaixo do recomendado pela OMS.")
    }

    if (imc >= 18.5 && imc < 35  ){

        mostra ("Seu peso está dentro do recomendado pela OMS.")
    }

    if (imc > 35 ){

        mostra ("Seu peso está acima do recomendado pela OMS.")
    }



</script>
3 respostas
solução!

Oi Maria, tudo bem?

Não sei se é essa a solução que você está buscando, mas no document.write("<br");, faltou fechar a tag < br >

Depois me diz aí se funcionou!

Olá Maria, tudo certo?

O ideal seria você criar uma função resultadoImc para retornar o resultado dos 'ifs'. Então você pode chamar esta função com a função mostra.

O código ficaria desta maneira:

function pulaLinha(){

        document.write("<br>");
        document.write("<br>");

    }

    function mostra (frase){

        document.write (frase);
        pulaLinha();

    }

    function calculaImc (altura, peso){

        return peso/(altura*altura);

    }

    var nome = prompt("Informe seu nome");
    var alturaInformada = prompt( "Olá, " + nome + ", Informe sua altura (use . e não ,)");
    var pesoInformado = prompt ("Informe também o seu peso (kg)");

    var imc = calculaImc (alturaInformada, pesoInformado);

    mostra ("O seu IMC é de " + Math.round (imc));

function resultadoImc (imc){
      if (imc < 18.5) {


        return "Seu peso está abaixo do recomendado pela OMS."
    }

    if (imc >= 18.5 && imc < 35  ){

        return "Seu peso está dentro do recomendado pela OMS."
    }

    if (imc > 35 ){

        return "Seu peso está acima do recomendado pela OMS."
    }
}

mostra(resultadoImc(imc));

Espero ter ajudado. Bons Estudos!

@Thiago, funcionou :) Era exatamente isso, falta de atenção mesmo.

@Diego, sua resposta me ajudou a ter ideias. Obrigada!