Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

IF dentro de IF

Flávio, boa noite!

A minha dúvida é referente ao if criado dentro do if. Os códigos funcionaram como no vídeo, e seguindo uma tabela de imc eu testei com os valores do código abaixo. Fiz alguns testes até dar o valor 24.9(no teste deu 24.913 e outros quebrados), nessa segunda condição a mensagem dentro do "mostra" não apareceu! Tirando só esse valor em específico, todo o resto funcionou corretamente. OBS: Para o código que não aparece a mensagem, eu usei o peso = 72 e altura = 1.70!

<meta charset="UTF-8">

<script>

    function pulaLinha () {

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

    }

    function mostra (frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc (peso, altura) {

        return peso/(altura*altura);


    }

    var nome = prompt("Informe o seu nome: ");
    var pesoInformado = prompt(nome + ", informe seu peso: ");
    var alturaInformada = prompt(nome + ", informe sua altura: ");

    var imc = calculaImc(pesoInformado, alturaInformada);

    mostra(nome + ", o seu imc é " + imc);

    if (imc < 18.5) {

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

    }

    if (imc >= 18.5){

        if (imc <= 24.9) {
            mostra("Você está dentro do peso ideal.");
        }

    }

    if (imc >25 ) {

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

    }


</script>

Atenciosamente,

Brenda.

3 respostas

E a propósito, eu apenas arredondei o 24.9 para 25 e resolvi o problema. Só gostaria de saber se, caso eu o deixasse como 24.9, como eu resolveria!

solução!

Oi Brenda tudo bem?

Isso acontece porque 24.913 é maior que 24.9 e como a condição do if exige que ele seja menor ou igual ele não estava entrando no bloco verdadeiro do if.

Quando você aumentou para que o if exigisse que fosse menor igual a 25 ele entrou no verdadeiro do if pois 24.913 é menor que 25.

Espero ter ajudado!!!

Você precisaria colocar em seu último if:

if (imc > 24,9) {

Deixando o 25, seu programa não sabe o que fazer para valores entre 24,9 e 25. Pois não houve uma instrução para essa faixa de valores.

Acho que isso resolveria. ;D