Menu
CoddyTech

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