1
resposta

IMC com if e com switch case

//calculo IMC
$peso = 90;
$altura = 1.86;

$imc = $peso/($altura**2);
echo "Considerando que seu peso e igual a: $peso".PHP_EOL;
echo "Considerando que sua altura e igual a: $altura".PHP_EOL;

//utilisando o number_format para reduzir o numero de casas decimais:

// Entre 18,5 e 24,9    Parabéns — você está em seu peso normal!
// Entre 25,0 e 29,9    Você está acima de seu peso (sobrepeso).
// Entre 30,0 e 34,9    Obesidade grau I.
// Entre 35,0    Obesidade grau II.


//com if
// if ($imc < 18.5) {
//     echo "Voce esta abaixo de seu peso. Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
// }elseif ($imc >= 18.5 && $imc <= 24.9){
//     echo "Parabens!!! Voce esta no seu peso ideal. Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
// }elseif ($imc >= 25.0 && $imc <= 29.9){
//     echo "Você está acima de seu peso (sobrepeso). Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
// }elseif ($imc >= 30.0 && $imc <= 34.9){
//     echo "Você está com Obesidade grau I. Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
// }else{
//     echo "Você está com Obesidade grau II (severa). Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
// }

//com switch case
switch ($imc){
    case ($imc < 18.5);
    echo "Voce esta abaixo de seu peso. Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
    break;
    case ($imc >= 18.5 && $imc <= 24.9);
    echo "Parabens!!! Voce esta no seu peso ideal. Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
    break;
    case ($imc >= 25.0 && $imc <= 29.9);
    echo "Você está acima de seu peso (sobrepeso). Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
    break;
    case ($imc >= 30.0 && $imc <= 34.9);
    echo "Você está com Obesidade grau I. Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
    break;
    case ($imc > 34.9);
    echo "Você está com Obesidade grau II (severa). Seu IMC e: ". number_format($imc,1,',','') .PHP_EOL;
    break;
}
1 resposta

Fala, Ignacio.

Essa sua sintaxe do switch case está errada.

Além disso, o switch testa apenas igualdade. No nosso caso, estamos comparando valores para decidir se são maiores, menores, etc.

O ideal é utilizar if mesmo.