Menu
Coddy logo textTech

Sentencia switch

Parte de la sección Fundamentos del Journey de PHP de Coddy. Lección 32 de 71.

Cuando necesitas comparar una sola variable con muchos valores específicos, la sentencia switch ofrece una alternativa más limpia a las cadenas largas de if-elseif.

La instrucción switch comprueba una variable una vez y después la compara con distintos 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";
}
?>

PHP compara $day con cada caso. Cuando encuentra una coincidencia, ejecuta el código de ese bloque.

La instrucción break es crucial. Le indica a PHP que salga de switch después de ejecutar el caso coincidente. Sin ella, PHP continuaría ejecutando todo el código que aparece a continuación, incluso el de otros casos.

Observa cómo sábado y domingo comparten el mismo código al colocar los casos juntos. El caso default actúa como un else. Se ejecuta cuando ningún otro caso coincide.

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

Usa switch cuando compares una variable con múltiples valores exactos. Para condiciones complejas o rangos, sigue usando sentencias if-elseif.

challenge icon

Desafío

Fácil

Lee una cadena command de la entrada que represente el color de un semáforo.

Usa una sentencia switch para determinar la acción adecuada según el color:

  • Si el comando es red, imprime Stop
  • Si el comando es yellow, imprime Slow down
  • Si el comando es green, imprime Go
  • Si el comando es flashing red o flashing yellow, imprime Proceed with caution
  • Para cualquier otro valor, imprime Invalid signal

Ejemplo:

Si la entrada es green, la salida debe ser:

Go

Si la entrada es flashing red, la salida debe ser:

Proceed with caution

Si la entrada es blue, la salida debe ser:

Invalid signal

Pruébalo tú mismo

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

// TODO: Escribe tu código a continuación usando una sentencia switch
// Determina la acción apropiada basándote en el color del semáforo


?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de PHP online