`switch` sin expresión
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 41 de 109.
En Go, podemos usar una sentencia switch sin una expresión después de la palabra clave. Esto es útil cuando queremos evaluar múltiples condiciones de una manera limpia.
Vamos a crear un programa que categorice a una persona según su edad:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Después de ejecutar este código, el programa comprobará cada condición de caso en orden. Dado que nuestra edad es 25, no es menor que 13 o 20, pero es menor que 30, por lo que el tercer caso coincide. El texto "Young Adult" se mostrará en la pantalla:
Young AdultObserva que sin una expresión después de switch, cada case se convierte en una condición booleana que se evalúa como verdadera o falsa. El primer case que se evalúe como verdadero ejecutará su bloque de código.
Si ninguno de los casos coincide, el caso default se ejecutaría. En nuestro ejemplo, si age fuera 35, la salida sería "Adult".
Desafío
FácilEn este desafío, practicarás el uso de una sentencia switch sin una expresión. Este tipo de switch es útil cuando quieres evaluar múltiples condiciones sin repetir sentencias if-else.
Hemos proporcionado una variable timeOfDay que representa la hora actual (en formato de 24 horas). Tu tarea es completar la sentencia switch sin una expresión para imprimir un saludo apropiado basado en la hora del día.
Hoja de referencia
Una sentencia switch sin expresión te permite evaluar múltiples condiciones de forma limpia:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Cada caso se convierte en una condición booleana que se evalúa como verdadera o falsa. El primer caso que se evalúa como verdadero ejecuta su bloque de código. Si ningún caso coincide, se ejecuta el caso default.
Pruébalo tú mismo
package main
import "fmt"
func main() {
// Esto representa la hora actual en formato de 24 horas (0-23)
timeOfDay := 14 // Esto son las 2:00 PM
// TODO: Completar la sentencia switch sin una expresión
// para imprimir el saludo apropiado basado en la hora del día
switch {
// Añade tus casos aquí
default:
fmt.Println("Hello!")
}
}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