Instrução Switch
Parte da seção Fundamentos do Journey de PHP da Coddy. Lição 32 de 71.
Quando você precisa comparar uma única variável com muitos valores específicos, a instrução switch oferece uma alternativa mais limpa às longas cadeias de if-elseif.
A instrução switch verifica uma variável uma vez e, em seguida, compara-a com diferentes valores de case:
<?php
$day = "Monday";
switch ($day) {
case "Monday":
echo "Start of the week";
break;
case "Friday":
echo "Almost weekend";
break;
case "Saturday":
case "Sunday":
echo "Weekend!";
break;
default:
echo "Regular day";
}
?>PHP compara $day com cada caso. Quando encontra uma correspondência, executa o código desse bloco.
A instrução break é crucial. Ela informa ao PHP para sair do switch após executar o case correspondente. Sem ela, o PHP continuaria executando todo o código abaixo, inclusive o de outros cases.
Observe como sábado e domingo compartilham o mesmo código ao agrupar os casos. O caso default funciona como um else. Ele é executado quando nenhum outro caso corresponde.
<?php
$grade = "B";
switch ($grade) {
case "A":
echo "Excellent!";
break;
case "B":
echo "Good job!";
break;
default:
echo "Keep trying!";
}
?>Use switch ao comparar uma variável com vários valores exatos. Para condições complexas ou intervalos, continue usando instruções if-elseif.
Desafio
FácilLeia uma string command da entrada que represente a cor de um semáforo.
Use uma instrução switch para determinar a ação apropriada com base na cor:
- Se o comando for
red, imprimaStop - Se o comando for
yellow, imprimaSlow down - Se o comando for
green, imprimaGo - Se o comando for
flashing redouflashing yellow, imprimaProceed with caution - Para qualquer outro valor, imprima
Invalid signal
Exemplo:
Se a entrada for green, a saída deverá ser:
GoSe a entrada for flashing red, a saída deverá ser:
Proceed with cautionSe a entrada for blue, a saída deverá ser:
Invalid signalExperimente você mesmo
<?php
// Ler entrada
$command = trim(fgets(STDIN));
// TODO: Escreva seu código abaixo usando uma declaração switch
// Determine a ação apropriada com base na cor do semáforo
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de ComparaçãoIgualdade e IdentidadeOperadores Lógicos - Parte 1Operadores Lógicos - Parte 2Revisão - Lógica Simples2Variáveis e Tipos de Dados
NúmerosStrings e AspasBooleanosConvenções de NomenclaturaRevisão - Inicialização de VariáveisVariáveis VaziasConcatenação de StringsObtendo Entrada do UsuárioConversão para Diferentes Tipos5Lógica Condicional
Instrução IfIf - ElseO Operador TernárioOperador de Coalescência NulaInstrução SwitchRecapitulação - Tomando Decisões3Operadores Básicos
Operadores AritméticosOperador MóduloOperador de ExponenciaçãoAtribuição CombinadaIncremento/DecrementoPrecedência de OperadoresRevisão - Cálculos SimplesOperadores de StringPratique por conta própria: Compilador de PHP online