1
resposta

IMC com IF. Boas Práticas

Exercitando formas mais enxutas do código sugerido pelo professor, me veio a ideia de utilizar o IF com dois parâmetros da seguinte forma:

if (imc >= 18.5 , imc <= 35) {

mostra("Parabéns! Seu IMC está ótimo!");

}

Tendo ciência de que o que fora ensinado pelo professor seria:

if (imc >= 18.5 && imc <= 35) {

mostra("Parabéns! Seu IMC está ótimo!");

}

**Pergunta:

*A primeira forma apresentada funciona pelo menos no exemplo do exercício do IMC, mas haveria alguma implicação na interpretação ou mesmo que afetasse o cálculo em outras forma de utilização?

Grato!

1 resposta

Sim, porque a tua condição if avalia somente o ultimo caso, como uma normal operação com operador ,, ou seja uma Sequence Expression.

O que acontece no exemplo:

if (imc >= 18.5 , imc <= 35) { mostra("Parabéns! Seu IMC está ótimo!"); }

é:

if (imc <= 35) { mostra("Parabéns! Seu IMC está ótimo!"); }

pois diz a defenição do operador , :

O operador ',' avalia as expressões dos seus operandos, da esquerda para a direita, e retorna o valor do último operando.