Menu
CoddyTech

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 instrucciones switch normalmente ejecutan solo el caso 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 el siguiente caso, independientemente de si coincide.

Cuando usas fallthrough al final de un caso, Go ejecutará el código del siguiente caso sin comprobar su condición. Esto es diferente de lenguajes como C, donde necesitas break para evitar que se continúe con el siguiente caso.

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 te permite ejecutar varias acciones relacionadas para un único caso coincidente.

challenge icon

Desafío

Fácil

En este desafío, practicarás el uso de la palabra clave fallthrough en una instrucción switch para crear un sistema de alertas por prioridad. Cuando se active una alerta de alta prioridad, el sistema deberá mostrar varios mensajes de advertencia en secuencia.

Recibirás una entrada de cadena que representa un nivel de alerta. Crea una instrucción switch que gestione los distintos niveles de alerta y use fallthrough para mostrar mensajes en cascada para las alertas de mayor prioridad.

La entrada será uno de estos niveles de alerta: "critical", "high", "medium" o "low".

Tu instrucción switch debe funcionar de la siguiente manera:

  • Para "critical": Imprime "CRITICAL: System shutdown imminent!" y continúa hasta el caso high (que a su vez continúa hasta medium)
  • Para "high": Imprime "HIGH: Immediate attention required!" y continúa para imprimir también el mensaje de prioridad medium
  • Para "medium": Imprime "MEDIUM: Please review when possible"
  • Para "low": Imprime "LOW: Informational only"

Como fallthrough encadena los casos, una alerta "critical" imprime tres líneas (CRITICAL, HIGH, MEDIUM), una alerta "high" imprime dos (HIGH, MEDIUM), y "medium" y "low" imprimen una línea cada una.

Pruébalo tú mismo

package main

import "fmt"

func main() {
    // Lee la entrada
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Escribe tu código a continuación
    // Crea una sentencia switch con fallthrough para el sistema de alertas
    
}
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 Lógica y Flujo

Practica por tu cuenta: Compilador de Go online