PHP: Estrutura condicional switch/case

Esta documentação apresenta a estrutura condicional switch/case da linguagem PHP. Com ela é possível executar trechos de código apenas se uma condição for atendida.

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.


Tópicos


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;
}

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;
}
    

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;
}
      

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

Artigos relacionados