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

Fiz o código usando mais opções: Magreza, normal, sobrepeso, obesidade e obesidade grave

Fiz o código usando mais categorias dentro do IMC, só gostaria que possam me ajudar a saber porque não está pulando a linha ? A resposta está saindo assim: Roseane, o seu IMC é 24.654832347140037 Seu imc é Normal. Sendo que eu criei o pulaLinha dentro da função mostra

4 respostas

Olá Rosane, coloque o seu código.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigada por avisar de fato eu não sabia

<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 imc=peso/(altura*altura);
        pulaLinha();


    }
    var nome=prompt("Informe seu nome");
    var alturaInformada=prompt(nome + ", Informe sua altura");
    var pesoInformado=prompt (nome+ ", Informe seu peso");
    var imc=calculaImc(alturaInformada,pesoInformado);
    document.write (nome + ", o seu IMC é "+ imc);


if(imc<18.5) { 
    mostra(" Você está abaixo do recomendado.");
}
if(imc>=18.5 && imc<=24.9){

        mostra(" Seu imc é Normal.");
}
if(imc>=25 && imc<=29.9){

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

if(imc>=30 && imc<=39.9){

        mostra(" Você está obeso.");
}
if(imc>40) {
mostra(" Você está com obesidade grave.");
}

    </script>
solução!

Olá Rosane, verifiquei seu código e vou lhe ajudar. Verificando seu código encontrei alguns erros que são normais, com o tempo automaticamente corrigimos e evitamos eles, fique tranquila.

Observe a formatação de seu código e veja a posição do if e do </script> no final. Nesse código não influenciou em nada mas vamos atentar para que futuramente não tenha nenhum problema com isso e também para facilitar a leitura de seu código.

Você que questionou que ao dar o resultado seu código não estava pulando a linha. Você criou uma função chamada [mostra(frase)], porém se você observar para exibir o resultado final você não usou essa função e sim diretamente o document.write, observe abaixo:

 var nome=prompt("Informe seu nome");
    var alturaInformada=prompt(nome + ", Informe sua altura");
    var pesoInformado=prompt (nome+ ", Informe seu peso");
    var imc=calculaImc(alturaInformada,pesoInformado);
    document.write (nome + ", o seu IMC é "+ imc);

O document.write ele apenas exibe o que estiver entre os parênteses após ele, para pular uma linha ou você escreve document.write("<br>") ou usa a função que você criou chamada function mostra(frase), que mostra e em seguida pula linha.

Para você entender melhor, seu código deveria estar assim:

   var nome=prompt("Informe seu nome");
    var alturaInformada=prompt(nome + ", Informe sua altura");
    var pesoInformado=prompt (nome+ ", Informe seu peso");
    var imc=calculaImc(alturaInformada,pesoInformado);
    mostra(nome + ", o seu IMC é "+ imc);

Uma dica, para melhorar a leitura de seu código você pode inserir essa sequência de if dentro de uma função e no final chamar essa função. Por exemplo, reescrevendo seu código inserindo a sequência de if dentro de uma função:

<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 imc=peso/(altura*altura);
        pulaLinha();


    }
    var nome=prompt("Informe seu nome");
    var alturaInformada=prompt(nome + ", Informe sua altura");
    var pesoInformado=prompt (nome+ ", Informe seu peso");
    var imc=calculaImc(alturaInformada,pesoInformado);

    function verificaIMC() {
        if(imc<18.5) { 
            mostra(" Você está abaixo do recomendado.");
        }
        if(imc>=18.5 && imc<=24.9){

                mostra(" Seu imc é Normal.");
        }
        if(imc>=25 && imc<=29.9){

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

        if(imc>=30 && imc<=39.9){

                mostra(" Você está obeso.");
        }
        if(imc>40) {
        mostra(" Você está com obesidade grave.");
        }
    }

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

</script>

Veja que inseri essa sequência dentro da function verificaIMC() e a chamei no final do código juntamente com o resultado facilitando na leitura e até mesmo para encontrar um erro.

Espero ter ajudado, não esqueça de marcar como solucionado caso tenha conseguido.

Abraços,

Marcus muito obrigada, de fato usei document.write apenas em uma linha hahaha e foi o suficiente pra não pular a linha do resultado, porque em cada if eu usei o mostra, mas realmente acima eu não havia usado, muito obrigada por ter sido tão atencioso e detalhista, corrigi e agora deu certo.

Quanto a posição do if e do /script ainda não entendi o que você comentou estar errado se puder esclarecer já evito erros futuros. Então quanto ao if fora do function é pq na aula o Flávio ensinou assim e como ainda sou muito novata não sei fazer tão diferente, quem sabe mais adiante né? Ainda me atrevi a criar várias categorias diferentes da aula hehehe.

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