Sentencia switch
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 instrucción switch ofrece una alternativa más clara a las largas cadenas de if-elseif.
La sentencia switch comprueba una variable una vez y después la compara con distintos 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 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 la estructura switch después de ejecutar el caso coincidente. Sin ella, PHP seguiría ejecutando todo el código de abajo, incluso el de otros casos.
Observa cómo sábado y domingo comparten el mismo código al agrupar los casos. El caso default funciona como un «si no». 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 varios valores exactos. Para condiciones complejas o rangos, utiliza instrucciones if-elseif.
Desafío
FácilLee 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, imprimeStop - Si el comando es
yellow, imprimeSlow down - Si el comando es
green, imprimeGo - Si el comando es
flashing redoflashing yellow, imprimeProceed with caution - Para cualquier otro valor, imprime
Invalid signal
Ejemplo:
Si la entrada es green, la salida debería ser:
GoSi la entrada es flashing red, la salida debería ser:
Proceed with cautionSi la entrada es blue, la salida debería ser:
Invalid signalPruébalo tú mismo
<?php
// Lee la entrada
$command = trim(fgets(STDIN));
// TODO: Escribe tu código a continuación usando una sentencia switch
// Determina la acción adecuada según el color del semáforo
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción a PHP
El lenguaje PHP¡Hola, mundo!Etiquetas e instruccionesComentariosEl salto de línea4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple2Variables y tipos de datos
NúmerosCadenas y comillasBooleanosConvenciones de nomenclaturaRepaso: inicialización de variablesVariables vacíasConcatenación de cadenasObtener datos del usuarioConvertir a otros tipos5Lógica condicional
Sentencia ifIf - elseEl operador ternarioOperador de coalescencia nulaSentencia switchRepaso: tomar decisiones3Operadores básicos
Operadores aritméticosOperador móduloOperador de exponenciaciónAsignación compuestaIncremento/decrementoPrecedencia de operadoresRepaso: cálculos sencillosOperadores de cadenasPractica por tu cuenta: Compilador de PHP online