Posted on: March 21, 2022 11:25 AM
Posted by: Renato
Categories: PHP tecnologia developer programming
Views: 424
Dica PHP a estrutura condicional switch case
O switch/case é uma estrutura condicional que está presente em várias linguagens de programação. Ela recebe um valor como parâmetro e verifica se ele atende alguma das condições especificadas. Em caso positivo o trecho de código relacionado a essa condição é executado.
Diferente da estrutura if/else, o switch/case avalia apenas condições de igualdade. Ou seja, ela verifica se o valor recebido como parâmetro é igual a alguma das opções especificadas em seu corpo. Esse comportamento equivale à utilização de vários if/else em sequência, porém com uma sintaxe mais enxuta e de fácil leitura.
# Sintaxe
Abaixo é possível ver a sintaxe da estrutura switch/case. Ela inicia recebendo uma expressão como parâmetro e em seguida são feitas verificações para saber se ela corresponde a algum dos valores especificados:
```
switch (expressão) {
case valor1:
//código a ser executado se a expressão for igual ao valor1
break;
case valor2:
//código a ser executado se a expressão for igual ao valor2
break;
case valorN:
//código a ser executado se a expressão for igual ao valorN
break;
}
```
- Linha 1: O parâmetro do switch/case deve estar entre parênteses e pode ser tanto uma variável quanto um método ou expressão;
- Linhas 2, 5 e 8: A palavra reservada case seguida de um valor (numérico, string, etc) verifica se a expressão recebida como parâmetro é igual a esse valor. Se for, o trecho de código entre o case e o break logo abaixo será executado;
- Linhas 3, 6 e 9: Os trechos de código entre o case e o break são executados caso a condição especificada no case seja atendida. Aqui pode haver várias linhas de código sem a necessidade de uso de chaves para delimitar o bloco;
- Linhas 4, 7 e 10: O comando break faz com que a verificação seja encerrada caso a condição do case equivalente seja atendida. Isso faz com as demais condições não sejam avaliadas, pois como se trata de comparações de igualdade, apenas uma delas será atendida.
# Cases agrupados
Caso um mesmo trecho de código deva ser executado para diferentes condições é possível agrupar os cases, da seguinte forma:
```
switch (expressão) {
case valor1:
case valor2:
case valor3:
//primeiro código
break;
case valor3:
//segundo código
break;
}
```
- Linhas 2 e 3: Note que os dois primeiros case não possuem o comando break. Isso faz com que o fluxo do código passe para a próxima verificação até encontrar um break. Neste caso, se o valor da expressão for 0 ou 1 o código seguirá e executará o trecho referente ao case 2. Em seguida o break da linha 6 encerrará o fluxo do switch.
# Default
Dentro do switch também é possível especificar um trecho de código que deve ser executado no caso de nenhuma das condições ser atendida. Para esse caso temos o comando default, que deve ser adicionado após todos os case, da seguinte forma:
```
switch (expressão) {
case valor1:
//código referente ao valor1
break;
case valor2:
//código referente ao valor2
break;
case valorN:
//código referente ao valorN
break;
default:
//código caso nenhuma condição seja atendida
break;
}
```
- Linhas 11 a 13: A estrutura do default é semelhante à do case, porém esse comando não recebe nenhum valor. Ele será executado caso nenhuma das condições anteriores seja atendida.
# Exemplo prático
No código abaixo podemos ver um exemplo prático de uso da estrutura switch/case. Nele temos um sistema simples de sorteio simulando um jogo de tabuleiro em que cada número representa uma ação:
```
$sorteio = rand(0,5);
switch($sorteio){
case 0:
echo "Você perdeu a vez";
break;
case 1:
echo "Avance 1 casa";
break;
case 2:
echo "Você ganhou um bônus! Avance 3 casas";
break;
default:
echo "Jogue novamente";
break;
}
```
# Run
- Linha 1: A variável $sorteio recebe um valor aleatório entre 0 e 5;
- Linha 3: Por meio do switch verificamos a variável $sorteio a fim de executar um procedimento para cada valor possível;
- Linhas 4 a 12: Verificamos se o valor sorteado foi 0, 1 ou 2 e para cada situação imprimimos uma mensagem específica;
- Linhas 13 a 15: Caso o valor sorteado não seja 0, 1 ou 2 imprimimos uma mensagem padrão.
#tecnologia #php #laravel #developer #programmer
- Fonte:
https://www.devmedia.com.br/php-estrutura-condicional-switch-case/38223
Donate to Site
Renato
Developer
-
Renato Lucena - há 2 anos
| "PHP é o Inglês da programação" - muito feliz no comentário! |