`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 instrucción switch sin una expresión después de la palabra clave. Esto resulta útil cuando queremos evaluar varias condiciones de una manera clara.
Creemos 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. Como nuestra edad es 25, no es menor que 13 ni que 20, pero sí es menor que 30, por lo que coincide con el tercer caso. El texto "Young Adult" se mostrará en la pantalla:
Young AdultObserva que, sin una expresión después de switch, cada caso se convierte en una condición booleana que se evalúa como verdadera o falsa. El primer caso que se evalúe como verdadero ejecutará su bloque de código.
Si ninguno de los casos coincide, se ejecutaría el caso default. En nuestro ejemplo, si la edad fuera 35, la salida sería "Adult".
Desafío
FácilEn este desafío, practicarás el uso de una instrucción switch sin una expresión. Este tipo de switch es útil cuando quieres evaluar varias condiciones sin repetir instrucciones if-else.
Hemos proporcionado una variable timeOfDay que representa la hora actual (en formato de 24 horas). Tu tarea es completar la instrucción switch sin una expresión para imprimir un saludo apropiado según la hora del día.
Usa estos rangos e imprime exactamente estos mensajes:
- 5 a 11:
Good morning! - 12 a 17:
Good afternoon! - 18 a 21:
Good evening! - cualquier otra hora:
Hello!(el casodefault, ya escrito)
Con timeOfDay = 14, el programa imprime Good afternoon!.
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 es 2:00 PM
// TODO: Completa la sentencia switch sin una expresión
// para imprimir el saludo apropiado según 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 decisionesPractica por tu cuenta: Compilador de Go online