Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

usei , no lugar de && e funcionou aguem sabe me dizer explicar o pq?

<meta charset="UTF-8">

<script>
    function pularLinha() {

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

    function mostrar(frase) {

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

    function calculaImc(altura,peso){

        return    peso/(altura*altura);

    }

    var nome = prompt ("Vamos calcular seu IMC! informe seu nome");
    var alturaInformada = (prompt(nome + ", Infome sua altura"));// prompt () recebe o parametro que vou pedir para o usuario inserir, pois o prompt me torrna um valor.
    var pesoInformado = (prompt(nome + ", Infome seu peso"));
    //var alturaInformada = 1.80;
    //var pesoInformado = 83;
    var imc = calculaImc(alturaInformada,pesoInformado).toFixed(2);

    mostrar("<h1>" + nome + ",<br> O seu IMC calculado é de " + imc + " !");

    if (imc<18.5) {
        mostrar("<h1>OBS: o seu IMC esta abaixo do recomendado<br>Procure ajuda de um médico pararegularizar o seu IMC (indice de massa corporea) que fique entre 18.5 e 35.");
    }

    if (imc>35) {
        mostrar("<h1>OBS: o seu IMC esta acima do recomendado<br>Procure ajuda de um médico para regularizar o seu IMC, (indice de massa corporea) o correto é ficar entre 18.5 e 35.");
    }

    if (imc>=18.5,imc<=35) {
        mostrar("<h1>OBS: o seu IMC esta dentro do recomendado<br>Parabens, continue assim!");
    }

    mostrar("FIM!</h1>");

</script>
1 resposta
solução!

O uso da virgula funciona da seguinte forma. Ele executa todas as condições mas a condição de entrada é a ultima. Nesse seu exemplo:

//var alturaInformada = 1.80; //var pesoInformado = 83;

O imc é : 25,61. Como 25,61 é menor que 35 ele entra no if.

Um exemplo pra vc testar ai, pra ficar mais facil de entender.

//Como ele verifica sempre a ultima condição ele vai cair no else pq 5 é diferente de 10.
var teste = 5;
if(teste==5, teste==10){
    console.log("Entrou no if");
}else{
    console.log("Entrou no else");
}

//Colocando o valor da variavel teste como 10 ele vai entrar no if porque 10 é igual a 10.
var teste = 10;
if(teste==5, teste==10){
    console.log("Entrou no if");
}else{
    console.log("Entrou no else");
}

E quando voce usa o "&&" você garante o intervalo : imc>=18.5 e imc<=35.

Usando a virgula vc esta verificando somente imc<=35.

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