Menu
Coddy logo textTech

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 sentencias switch normalmente ejecutan solo el caso coincidente y luego salen automáticamente. Sin embargo, la palabra clave fallthrough cambia este comportamiento al forzar que la ejecución continúe en el siguiente caso, independientemente de si coincide o no.

Cuando usas fallthrough al final de un caso, Go ejecutará el código del siguiente caso sin comprobar su condición. Esto es diferente a lenguajes como C, donde necesitas break para evitar que la ejecución pase al 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 sentencia fallthrough. Esto te permite ejecutar múltiples acciones relacionadas para un solo caso coincidente.

quiz iconPonte a prueba

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

quiz iconPonte a prueba

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

quiz iconPonte a prueba

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

challenge icon

Desafío

Fácil

En este desafío, practicarás el uso de la palabra clave fallthrough en una sentencia switch para crear un sistema de alerta de prioridad. Cuando se activa una alerta de alta prioridad, el sistema debe mostrar múltiples mensajes de advertencia en secuencia.

Recibirás una entrada de tipo string que representa un nivel de alerta. Crea una sentencia switch que maneje diferentes 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 sentencia switch debe funcionar de la siguiente manera:

  • Para "critical": Imprime "CRITICAL: System shutdown imminent!" y usa fallthrough para imprimir también el mensaje de alta prioridad.
  • Para "high": Imprime "HIGH: Immediate attention required!" y usa fallthrough 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 tanto los mensajes de prioridad crítica como los de alta prioridad, y las alertas altas muestren tanto los mensajes de prioridad alta como los de prioridad media.

Hoja de referencia

La palabra clave fallthrough en las sentencias switch de Go obliga a que la ejecución continúe en el siguiente caso sin comprobar su condición:

grade := "B"
switch grade {
case "A":
    fmt.Println("Excellent!")
    fallthrough
case "B":
    fmt.Println("Good job!")
    fallthrough
case "C":
    fmt.Println("Keep trying!")
}

Cuando grade es "B", esto imprimirá tanto "Good job!" como "Keep trying!" debido a la sentencia fallthrough. A diferencia de lenguajes como C, las sentencias switch de Go finalizan automáticamente después de un caso coincidente a menos que se utilice fallthrough.

Pruébalo tú mismo

package main

import "fmt"

func main() {
    // Leer 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 alerta
    
}
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