Lucas Atolini Postado Março 11, 2022 Denunciar Share Postado Março 11, 2022 Caros, podem me ajudar? O algoritmo deve verificar se o valor da variável é positivo, negativo ou igual a zero. O código a seguir funciona corretamente: <?php $val = -69; //Valor de entrada $resultado = ""; if($val > 0){ $resultado = "Valor Positivo"; }elseif($val < 0){ $resultado = "Valor Negativo"; }else{ $resultado = "Igual a Zero"; } echo $resultado; ?> O código a seguir não funciona, ele imprime sempre "Valor Positivo". Podem me ajudar a compreender? $digitado = 0; $digitado = (int) $digitado; $resultado = ""; switch($digitado) { case $digitado > 0: $resultado = "Valor Positivo"; break; case $digitado < 0; $resultado = "Valor Negativo"; break; default: $resultado = "Igual a Zero"; } echo $resultado; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Março 12, 2022 Denunciar Share Postado Março 12, 2022 Use match <?php $digitado = 0; $resultado = match ($digitado) { $digitado > 0 => "Valor Positivo", $digitado < 0 => "Valor Negativo", default => "Igual a Zero", }; echo $resultado; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wash Postado Março 12, 2022 Denunciar Share Postado Março 12, 2022 (editado) O switch case avalia apenas um único valor. No caso específico que você enviou, será analisado o resultado da conta, que é um bool É bem mais complicado ficar fazendo operações aritméticas dentro de um switch. É muita gambiarra. Há formas melhores do que switch. Já ouvi muita gente dizendo que trabalhou em sistemas enormes a vida inteira e nunca usaram switch. Sugestão de solução: <?php $digitado = 0; $result = ''; switch($digitado) { case ($digitado > 0 ? $digitado : -1): $result = 'Valor Positivo'; break; case ($digitado < 0 ? $digitado : 1); $result = 'Valor Negativo'; break; default: $result = 'Igual a Zero'; } echo $result; Editado Março 12, 2022 por wash Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Lucas Atolini
Caros, podem me ajudar?
O algoritmo deve verificar se o valor da variável é positivo, negativo ou igual a zero.
O código a seguir funciona corretamente:
O código a seguir não funciona, ele imprime sempre "Valor Positivo".
Podem me ajudar a compreender?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.