Switch con `fallthrough`
Parte de la sección Lógica y Flujo del Journey de GO de Coddy. Lección 1 de 68.
En Go, las switch statements normalmente ejecutan solo la case coincidente y después salen automáticamente. Sin embargo, la palabra clave fallthrough cambia este comportamiento al forzar que la ejecución continúe con la siguiente case, independientemente de si coincide.
Cuando usas fallthrough al final de un caso, Go ejecutará el código del caso siguiente sin comprobar su condición. Esto es diferente de lenguajes como C, donde necesitas break para evitar continuar con el caso siguiente.
grade := "B"
switch grade {
case "A":
fmt.Println("Excellent!")
fallthrough
case "B":
fmt.Println("Good job!")
fallthrough
case "C":
fmt.Println("Keep trying!")
}En este ejemplo, si grade es "B", imprimirá tanto "Good job!" como "Keep trying!" debido a la instrucción fallthrough. Esto permite ejecutar varias acciones relacionadas para un único caso coincidente.
Desafío
FácilEn este desafío, practicarás el uso de la palabra clave fallthrough en una instrucción switch para crear un sistema de alertas prioritarias. Cuando se active una alerta de alta prioridad, el sistema deberá mostrar varios mensajes de advertencia en secuencia.
Recibirás una entrada de tipo cadena que representa un nivel de alerta. Crea una instrucción switch que gestione diferentes niveles de alerta y use fallthrough para mostrar mensajes consecutivos para las alertas de mayor prioridad.
La entrada será uno de estos niveles de alerta: "critical", "high", "medium" o "low".
Tu instrucción switch deberá funcionar de la siguiente manera:
- Para
"critical": imprime "CRITICAL: System shutdown imminent!" y continúa para imprimir también el mensaje de alta prioridad - Para
"high": imprime "HIGH: Immediate attention required!" y continúa para imprimir también el mensaje de prioridad media - Para
"medium": imprime "MEDIUM: Please review when possible" - Para
"low": imprime "LOW: Informational only"
Usa la palabra clave fallthrough para que las alertas críticas muestren los mensajes de prioridad crítica y alta, y las alertas altas muestren los mensajes de prioridad alta y media.
Pruébalo tú mismo
package main
import "fmt"
func main() {
// Leer entrada
var alertLevel string
fmt.Scanln(&alertLevel)
// TODO: Escribe tu código debajo
// Crea una sentencia switch con fallthrough para el sistema de alertas
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Flujo de control avanzado
Switch con `fallthrough`Salir de bucles anidadosContinuar un bucle específicoLa sentencia `goto`Repaso: Control de bucles avanzado4Proyecto: Lista de tareas sencilla
Configuración del proyectoAñadir una tarea2Estructuras y Métodos
Definición de métodos en estructurasReceptores de valorReceptores de punteroElegir receptoresMétodos vs FuncionesResumen - Comportamiento de estructuras5Mapas en profundidad
Mapas de StructsPunteros como valores de MapVerificación de Maps NilComparación de MapsResumen - Contador de frecuencia de palabras3Interfaces (Conceptos básicos)
¿Qué es una interfaz?Definir una interfazImplementar una interfazUso de tipos de interfazInterfaz vacíaAserciones de tipoType SwitchResumen: Formas y comportamientosPractica por tu cuenta: Compilador de Go online