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

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

Pratique por conta própria: Compilador de PHP online