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

[Bug] Desafio IMC em PHP.

Olá!

Segui o desafio proposto com o código abaixo:

= 18.5) { echo "Peso Normal!"; } elseif ($resultado <= 30 || $resultado >= 25) { echo "Sobrepeso!"; } elseif ($resultado <= 35 || $resultado >= 30) { echo "Obesidade Grau 1!"; } elseif ($resultado <= 40 || $resultado >= 35) { echo "Obesidade Grau 2!"; } elseif ($resultado >= 40) { echo "Obesidade Grau 3!"; } echo $resultado; ?>

Ao simular o meu peso atual que é 80, obtive como resultado a mensagem: "Peso Normal!23.88844098062" Evidência1Evidência2

Mas ao simular o peso 120, a mensagem exibida é a mesma, com exceção do resultado do cálculo que é 35.832661470931. Evidência3Evidência4

Não consigo enxergar onde errei rsrs.

Poderiam me ajudar? Grato.

2 respostas
solução!

Boa noite Oto, tudo bem? Espero que sim. O problema acontece por conta da condições usadas, no caso o problema se manifesta na primeira, mas o problema é presente todas as condições salvo a primeira.

elseif( $resultado <= 25 || $resultado >=18.5)

Neste caso a condição será atendida se o resultado for menor ou igual a 25 ou e for maior ou igual a 18.5. Tendo em mente essas duas possibilidades podemos concluir que 35.832661470931 é maior que 18.5 o que satisfaz uma das condições entrando assim no if e exibindo o peso como normal.

Está é a razão do bug. Acredito que ficara fácil para você resolver o problema agora.

Uma dica é sempre que for usar código aqui no forum usar o recurso para códigos, isso facilita o entendimento do código e o teste.

Agradeço a sua pergunta e boa sorte no aprendizado, Ricardo Campos

Bom dia, Ricardo. Tudo bem?

Foi exatamente isso. Foram as condições mesmo!

Muitíssimo obrigado pelas dicas. Irei aplicá-las nas próximas!