1
resposta

[Dúvida] Repetição "if" nas demais aplicações

Prezados,

Ao realizar teste com os demais IFs, constatei que me trouxeram outros resultados.

Sendo assim, solicito orientação do que pode estar ocorrendo conforme iamgem abaixo:

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

<meta charset="UTF-8">

<script>

    //Minhas funções:
    function pulaLinha() {

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

    function mostra(frase) {

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
}

    //Minhas variáveis:
    var nomeUsuario = prompt ("Informe seu nome");
    var alturaInformada = prompt (nomeUsuario + ", informe sua altura (separe por ponto)");
    var pesoInformado = prompt (nomeUsuario + ", informe seu peso (separe por ponto)");
    var imc = calculaImc(alturaInformada, pesoInformado)


    //Mensagem de resultado para usuário:
    mostra(nomeUsuario+", o seu IMC é de " + imc)

        if (imc < 18,5)
    {
            mostra ("Você está abaixo do recomendado")
    }
        if (imc >= 18,5 && imc <=24,99) 
    {
            mostra ("Seu peso está normal")
    }
        if (imc >= 25 && imc <=29,99) 
    {
             mostra ("Você está acima do peso")
    }
        if (imc >= 30 && imc <=34,99) 
    {
            mostra ("Você está com obesidade nível I")
    }
        if (imc >=35 && imc <=39,99)
    {
             mostra ("Você está com obesidade nível II, considerada severa")
    }
</script>

<br><br>
<h3>
Situação:
<br>
Entre 18,5 e 24,99      (Peso normal)
<br>
Entre 25 e 29,99        (Acima do peso)
<br>
Entre 30 e 34,99        (Obesidade I)
<br>
Entre 35 e 39,99        (Obesidade II)
</  h3>
<br>
1 resposta

Oi, Gabriel, tudo bem?

Desculpe a demora em te responder!

Quando analisei seu código, percebi que o problema está na forma como você está representando os números decimais. No JavaScript, os números decimais são representados com um ponto (.) e não com uma vírgula (,).

Então, ao invés de escrever 18,5, você deve escrever 18.5. O mesmo vale para os outros números decimais em suas condições if.

Seu código corrigido ficaria assim:


    if (imc < 18.5) {
        mostra("Você está abaixo do recomendado")
    }
    if (imc >= 18.5 && imc <= 24.99) {
        mostra("Seu peso está normal")
    }
    if (imc >= 25 && imc <= 29.99) {
        mostra("Você está acima do peso")
    }
    if (imc >= 30 && imc <= 34.99) {
        mostra("Você está com obesidade nível I")
    }
    if (imc >= 35 && imc <= 39.99) {
        mostra("Você está com obesidade nível II, considerada severa")
    }

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

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