La palabra clave `fallthrough`
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 42 de 109.
En Go, la palabra clave fallthrough nos permite continuar la ejecución al siguiente caso en una sentencia switch, incluso después de encontrar una coincidencia. Exploremos cómo funciona esto.
Primero, vamos a crear una sentencia switch simple que utiliza la palabra clave fallthrough para describir un número:
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}Después de ejecutar este código, veremos los tres mensajes impresos en la pantalla:
Less than 20 Greater than 10 Positive numberEsto sucede porque el primer caso coincide (15 es menor que 20), y la palabra clave fallthrough obliga a Go a ejecutar también el segundo caso. Luego, el segundo caso también utiliza fallthrough, lo que hace que Go ejecute también el tercer caso. Sin fallthrough, solo se ejecutaría el primer caso que coincida.
Recuerda que fallthrough ejecutará el siguiente caso independientemente de si su condición es verdadera o no. En nuestro ejemplo, todas las condiciones resultan ser verdaderas para el número 15, pero el siguiente caso se ejecutaría incluso si su condición fuera falsa.
Desafío
PrincipianteEn este desafío, practicarás el uso de la palabra clave fallthrough en una sentencia switch. La palabra clave fallthrough permite que la ejecución continúe en el siguiente caso incluso después de encontrar una coincidencia.
Tienes una variable que representa un día de la semana. Tu tarea es añadir la palabra clave fallthrough en el lugar apropiado para que el programa imprima tanto 'It's a weekday!' como 'Time to work!' cuando el día sea 'Monday'.
Hoja de referencia
La palabra clave fallthrough permite que la ejecución continúe al siguiente caso en una sentencia switch, incluso después de encontrar una coincidencia:
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}Esto producirá la salida: Less than 20 Greater than 10 Positive number
fallthrough ejecuta el siguiente caso independientemente de si su condición es verdadera o falsa.
Pruébalo tú mismo
package main
import "fmt"
func main() {
// Una variable que representa un día de la semana
day := "Monday"
// Sentencia switch para comprobar el día
switch day {
case "Monday":
fmt.Println("It's a weekday!")
// TODO: Añadir la palabra clave fallthrough aquí para continuar con el siguiente case
case "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("Time to work!")
case "Saturday", "Sunday":
fmt.Println("It's the weekend!")
default:
fmt.Println("Invalid day!")
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones