Menu
Coddy logo textTech

Switch Statement

Parte da seção Fundamentos do Journey de PHP da Coddy — lição 32 de 71.

Quando você precisar comparar uma única variável contra 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 depois a compara com diferentes valores 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";
}
?>

O PHP compara $day com cada case. Quando encontra uma correspondência, executa o código daquele bloco.

A instrução break é crucial — ela instrui o PHP a sair do switch após executar o case correspondente. Sem ela, o PHP continuaria executando todo o código abaixo, mesmo de outros cases.

Observe como sábado e domingo compartilham o mesmo código ao empilhar cases juntos. O default case age como um else — ele é executado quando nenhum outro case 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 contra múltiplos valores exatos. Para condições complexas ou intervalos, use instruções if-elseif.

challenge icon

Desafio

Fácil

Leia uma string command da entrada representando 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, imprima Stop
  • Se o comando for yellow, imprima Slow down
  • Se o comando for green, imprima Go
  • Se o comando for flashing red ou flashing yellow, imprima Proceed with caution
  • Para qualquer outro valor, imprima Invalid signal

Exemplo:

Se a entrada for green, a saída deve ser:

Go

Se a entrada for flashing red, a saída deve ser:

Proceed with caution

Se a entrada for blue, a saída deve ser:

Invalid signal

Folha de consulta

A instrução switch fornece uma maneira mais limpa de comparar uma única variável contra múltiplos valores específicos:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    default:
        echo "Regular day";
}
?>

A instrução break sai do switch após executar o caso correspondente. Sem ela, o PHP continua executando o código dos casos subsequentes.

Múltiplos casos podem compartilhar o mesmo código empilhando-os:

<?php
switch ($day) {
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
}
?>

O caso default é executado quando nenhum outro caso corresponde, semelhante a uma instrução else.

Use instruções switch para comparar uma variável contra múltiplos valores exatos. Para condições complexas ou intervalos, use instruções if-elseif em vez disso.

Experimente você mesmo

<?php
// Ler entrada
$command = trim(fgets(STDIN));

// TODO: Escreva seu código abaixo usando uma instrução switch
// Determine a ação apropriada com base na cor do semáforo


?>
quiz iconTeste seus conhecimentos

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