Menu
Coddy logo textTech

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.

challenge icon

Desafio

Fácil

Leia 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, 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 deverá ser:

Go

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

Proceed with caution

Se a entrada for blue, a saída deverá ser:

Invalid signal

Experimente 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


?>
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