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

Não acho o erro no código abaixo

Não consigo descobrir porque o texto não aparece abaixo do resultado do IMC.

<script>

    function pulaLinha() {

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

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(peso, altura) {

        return peso / (altura * altura);

    }    

    var nome = prompt("Informe o seu nome")
    var pesoInformado = prompt(nome + ", Informe seu peso (Ex.: 82)");
    var alturaInformada = prompt(nome + ", Informe sua altura (Ex.: 1.72)");
    var imc = calculaImc(pesoInformado, alturaInformada);

    document.write(nome + ", o seu IMC é: " + imc);

    if(imc < 18.5) {

        mostra("Você está abaixo do peso recomendado");

    }

    if(imc >= 18.5) {
        if(imc < 25) {

        mostra("Você está com o peso normal");

        }

    }

    if(imc >= 25) {
        if(imc < 30) {

        mostra("Você está com sobrepeso");

        }

    }

    if(imc >= 30) {
        if(imc < 35) {

        mostra("Você está com obesidade Grau 1");

        }

    }

    if(imc >= 35) {
        if(imc < 40) {

        mostra("Você está com obesidade Grau 2");

        }

    }

    if(imc >= 40) {

        mostra("Você está com obesidade Grau 3");

    }

</script>
3 respostas

Bom dia Gerson!

Você precisa adicionar de alguma forma a tag br depois de escrever a primeira linha, para pular a linha antes de escrever a próxima linha. Essa tag br é como o ENTER do teclado... se escreve uma frase e quer pular para outra linha antes de escrever outra frase, tem que apertar o ENTER. Como vi que no seu código vc já tem uma função pulaLinha(), que faz isso, então basta chamar ela depois de escrever a primeira linha.

    document.write(nome + ", o seu IMC é: " + imc);
    pulaLinha();
    if(imc < 18.5) {

        mostra("Você está abaixo do peso recomendado");

    }

Código completo:

<script>

    function pulaLinha() {

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

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(peso, altura) {

        return peso / (altura * altura);

    }    

    var nome = prompt("Informe o seu nome")
    var pesoInformado = prompt(nome + ", Informe seu peso (Ex.: 82)");
    var alturaInformada = prompt(nome + ", Informe sua altura (Ex.: 1.72)");
    var imc = calculaImc(pesoInformado, alturaInformada);

    document.write(nome + ", o seu IMC é: " + imc);
    pulaLinha();
    if(imc < 18.5) {

        mostra("Você está abaixo do peso recomendado");

    }

    if(imc >= 18.5) {
        if(imc < 25) {

        mostra("Você está com o peso normal");

        }

    }

    if(imc >= 25) {
        if(imc < 30) {

        mostra("Você está com sobrepeso");

        }

    }

    if(imc >= 30) {
        if(imc < 35) {

        mostra("Você está com obesidade Grau 1");

        }

    }

    if(imc >= 35) {
        if(imc < 40) {

        mostra("Você está com obesidade Grau 2");

        }

    }

    if(imc >= 40) {

        mostra("Você está com obesidade Grau 3");

    }

</script>

Mas o a função pulaLinha está dentro da função mostra, então isso deveria ter funcionado, pelo menos nos exercícios anteriores estava funcionando.

Eu resolvo facilmente o problema colocando o antes da frase a ser mostrada, porém entendo que não seria necessário.

<script>

    function pulaLinha() {

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

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(peso, altura) {

        return peso / (altura * altura);

    }    

    var nome = prompt("Informe o seu nome")
    var pesoInformado = prompt(nome + ", Informe seu peso (Ex.: 82)");
    var alturaInformada = prompt(nome + ", Informe sua altura (Ex.: 1.72)");
    var imc = calculaImc(pesoInformado, alturaInformada);

    document.write(nome + ", o seu IMC é: " + imc);
    pulaLinha();
    if(imc < 18.5) {

        mostra("<br>Você está abaixo do peso recomendado");

    }
solução!

Boa noite Gelson, tudo certo ? Cara só alterei o "document.write(nome + ", o seu IMC é: " + imc);" , por "mostra(nome + ", o seu IMC é: " + imc);" , pois você declarou na function mostra() o document.write.

Alterei aqui e deu certo.

Vou criar um tópico com minha dúvida no mesmo exercício, se puder dar uma analisada fico grato.

Abraço.

<script>

    function pulaLinha() {

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

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(peso, altura) {

        return peso / (altura * altura);

    }    

    var nome = prompt("Informe o seu nome")
    var pesoInformado = prompt(nome + ", Informe seu peso (Ex.: 82)");
    var alturaInformada = prompt(nome + ", Informe sua altura (Ex.: 1.72)");
    var imc = calculaImc(pesoInformado, alturaInformada);

    mostra(nome + ", o seu IMC é: " + imc);

    if(imc < 18.5) {

        mostra("Você está abaixo do peso recomendado");

    }

    if(imc >= 18.5) {
        if(imc < 25) {

        mostra("Você está com o peso normal");

        }

    }

    if(imc >= 25) {
        if(imc < 30) {

        mostra("Você está com sobrepeso");

        }

    }

    if(imc >= 30) {
        if(imc < 35) {

        mostra("Você está com obesidade Grau 1");

        }

    }

    if(imc >= 35) {
        if(imc < 40) {

        mostra("Você está com obesidade Grau 2");

        }

    }

    if(imc >= 40) {

        mostra("Você está com obesidade Grau 3");

    }

</script>