Solucionado (ver solução)
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