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

Porque algumas condições do meu código não funcionam?

Algumas partes do meu código não funcionam (junto à elas, antecedem comentários), revisei o código algumas vezes e também assisti novamente algumas aulas mas não fui capaz de solucionar. Quais alterações devem ser feitas pra que o código funcione por inteiro?

<meta charset="UTF-8">
<script>
    function pulaLinha()
        {
            document.write("<br>");
        }
    function mostre(algo)
        {
            document.write(algo)
        }
    function calculaImc(peso, altura)
        {
            return (peso / ((altura * altura) / 10000))
        }
    var pesoP = (prompt("Primeiramente, qual é o seu peso?"));
    var alturaP = (prompt("Agora me diga quando você mede em centímetros."));
    var nCalc = calculaImc(pesoP, alturaP)

//condição abaixo funciona 

        if (nCalc < 19)
            {
                alert("O seu IMC é " + (nCalc) + ".\nDe acordo com o cálculo, o seu peso está abaixo do ideal.");
            }

//condição abaixo NÃO funciona

        if (nCalc >= 19 && nCalc < 25)
            {
                alert("O seu IMC é " + (nCalc) + ".\nDe acordo com o cálculo, o seu peso está dentro do ideal.");
            }

//condição abaixo NÃO funciona

        if (nCalc == 25 && nCalc < 30)
            {
                alert("O seu IMC é " + (nCalc) + ".\nDe acordo com o cálculo, você sofre de sobrepeso");
            }

//condição abaixo NÃO funciona

        if (nCalc == 30 && nCalc < 36)
            {
                alert("O seu IMC é " + (nCalc) + ".\nDe acordo com o cálculo, você sofre de obesidade");
            }
//condição abaixo funciona
        if (nCalc >= 36)
            {
                alert("O seu IMC é " + (nCalc) + ".\nDe acordo com o cálculo, você sofre de super obesidade.");
            }
    mostre(nCalc);
</script>
1 resposta
solução!

Opa, creio que essa questão do == está te quebrando um pouco.

if (nCalc == 25 && nCalc < 30)

Pensa se for o 26, ela não é igual a 25, mas é menor que 30.

Acho que você confundiu, deveria ser >= ali né? Abaixo também tem um caso parecido.