Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

Código IF não está imprimindo na tela

<meta charset="UTF-8">

<script>

    function pulaLinha(){

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

    function mostrar(frase){

            document.write(frase);
            pulaLinha();
    }

    function calculaImc(altura, peso){

            return peso / (altura * altura);
    }

    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);

    mostrar("O IMC calculado é de " + imc);

    if (imc < 18.5) {

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

    if (imc > 35) {

        mostra("Você está acima do recomendado.");
    }

    if (imc >= 18) {

            mostra("Você está na faixa recomendada.");
    }

    if (imc <= 35) {

        mostra(" Você está na faixa recomendada");
}



</script>
10 respostas

Bom dia Carlos, selecione a opção inserir bloco de codigos </> para inserir um codigo na sua pergunta, assim poderemos te ajudar! Abraço!

Pronto!

Segue o codigo abaixo:

<script>
    //esta funcao serve para pular linha
    function pulaLinha(){
        document.write("<br><br>");
    }
    //esta funcao serve para substituir o document.write junto com a função de pular linha
    function calculaImc(altura, peso){
        var imc = peso / (altura * altura);
        return imc; //return sempre utilizado para retornar o valor de uma função

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

    }

    var nome = prompt("Digite o seu nome");
    var altura1 = parseFloat(prompt(nome + " digite sua altura:"));
    var peso1 = parseFloat(prompt(nome + " digite o seu peso:"));
    //A função parseFloat serve para transformar a String em Numero pois a função prompt sempre vai retornar uma String
    var resultadoImc = calculaImc(altura1, peso1);
    if(resultadoImc < 18.5){
            mostra("Você esta abaixo do peso com IMC de: " + resultadoImc);
        }
    if((resultadoImc > 18.5) && (resultadoImc < 25)){
            alert("Você dentro do peso ideal, com IMC de: " + resultadoImc);
        }
    if((resultadoImc > 25) && (resultadoImc < 30)){
            alert("Você esta com sobrepeso, com IMC de: " + resultadoImc);
        }
    if((resultadoImc > 30) && (resultadoImc < 40)){
            alert("Você esta obeso(a), com IMC de: " + resultadoImc);
        }
    if(resultadoImc >= 40){
            alert("Você esta muito obeso(a), com IMC de: " + resultadoImc);
        }

            mostra("Obrigado por utilizar a calculadora de IMC!")
</script>

Nesta parte do seu codigo:

    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);

Sempre que voce quiser ler um valor passado pelo usuario pelo prompt voce deve transformar a string em um valor inteiro utilizando o parseInt ou para numeros com casas decimais utilizar o parseFloat.

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

Entendi! Muito obrigado pela resposta! Então no caso o que corrigiria o meu código seria o parseInt/parseFloat, né?

No caso como a altura e o peso utilizam casas decimais voce deve utilizar o parseFloat()

solução!

Na estrutura do if como voce quer testar um intervalo voce deve utilizar:

<meta charset="UTF-8">

<script>

    function pulaLinha(){

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

    function mostrar(frase){

            document.write(frase);
            pulaLinha();
    }

    function calculaImc(altura, peso){

            return peso / (altura * altura);
    }

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

    mostrar("O IMC calculado é de " + imc);

    if (imc < 18.5) {

            alert("Você  está abaixo do recomendado.");
    } 

    if (imc > 35) {

        alert("Você está acima do recomendado.");
    }

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

            alert("Você está na faixa recomendada.");
    }

</script>

note que na faixa recomendada você deve utilizar && Se((imc >= 18) e (imc < 35)) entã...

Entendi, muito obrigado pela resposta e explicação! Agora que fui me tocar que não vi a Videoaula completa! Por isso eu não estava entendendo :P