Menu
Coddy logo textTech

Switch Statement

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

Cuando necesites 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 sentencia switch verifica una variable una vez y luego la compara con 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 con cada case. Cuando encuentra una coincidencia, ejecuta el código de ese bloque.

La sentencia break es crucial: le indica a PHP que salga del switch después de ejecutar el case coincidente. Sin ella, PHP continuaría ejecutando todo el código subsiguiente, incluso de otros cases.

Observa cómo sábado y domingo comparten el mismo código al apilar 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 contra múltiples valores exactos. Para condiciones complejas o rangos, quédate con las sentencias if-elseif.

challenge icon

Desafío

Fácil

Lee una cadena command desde la entrada que representa un color de semáforo.

Usa una sentencia switch para determinar la acción apropiada 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 debería ser:

Go

Si la entrada es flashing red, la salida debería ser:

Proceed with caution

Si la entrada es blue, la salida debería ser:

Invalid signal

Hoja de referencia

La sentencia switch proporciona una forma más limpia de comparar una sola variable contra múltiples 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";
}
?>

La sentencia break sale del switch después de ejecutar el caso coincidente. Sin ella, PHP continúa ejecutando el código de los casos subsiguientes.

Múltiples casos pueden compartir el mismo código apilándolos:

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

El caso default se ejecuta cuando ningún otro caso coincide, similar a una sentencia else.

Utilice sentencias switch para comparar una variable contra múltiples valores exactos. Para condiciones complejas o rangos, utilice sentencias if-elseif en su lugar.

Pruébalo tú mismo

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

// TODO: Escribe tu código debajo usando una sentencia switch
// Determina la acción apropiada basada 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