Sebastian Gomez
🔥 Aprende a controlar el flujo de tu programa con condicionales y switch en Go 🔥
Los condicionales en Go son una forma de controlar el flujo de un programa. Puedes usar if, else, else if y switch para determinar qué instrucciones se ejecutarán basándose en ciertas condiciones.
Los condicionales "if-else if" son una forma de tomar decisiones en programación. Funcionan de la siguiente manera:
Veamos un primer ejemplo, un condicional que evalue si una variable es mayor o menor que el numero 10:
package main
import "fmt"
func main() {
var x int = 11
if x > 10 {
fmt.Println("x es mayor a 10")
} else {
fmt.Println("x es menor a 10")
}
}
A diferencia de otros lenguajes los condicionales no requiren parentesis en la condicion a evaluar.
Veamos ahora un ejemplo de if else if, donde yo puedo adicionar tantos casos como desee mediante la sintaxis else if:
func ejemploIfElseIf(){
var x int = 11
if x > 10 {
fmt.Println("x es mayor a 10")
} else if x == 10 {
fmt.Println("x es igual a 10")
} else {
fmt.Println("x es menor a 10")
}
}
La estructura switch es una forma de control de flujo en programación que permite simplificar múltiples comparaciones de una variable contra diferentes valores. Funciona de la siguiente manera:
Inicio de switch: La estructura comienza con la palabra clave switch, seguida de la variable o expresión que quieres comparar.
Casos (case): Dentro del bloque de switch, defines diferentes casos usando la palabra clave case, seguida de un valor específico que quieres comparar con la variable o expresión del switch. Si la variable o expresión coincide con el valor del case, se ejecuta el bloque de código asociado a ese case.
Ejecución de un Caso: Cuando se encuentra una coincidencia entre la variable y un case, se ejecuta el código asociado a ese case y luego se sale de la estructura switch. Esto significa que solo se ejecuta el código de un case coincidente.
Break: Aunque en algunos lenguajes es necesario usar la palabra clave break al final de cada bloque case para evitar que el control fluya hacia el siguiente case, en algunos lenguajes modernos como Go, el break es implícito y no es necesario escribirlo.
default: Puedes incluir un default al final del switch, que se ejecutará si ninguno de los case coincide. Es similar a un else en una estructura if-else.
func ejemploSwitch(){
var x int = 11
switch x {
case 1:
fmt.Println("x es 1")
case 2:
fmt.Println("x es 2")
case 3:
fmt.Println("x es 3")
case 4:
fmt.Println("x es 4")
case 5:
fmt.Println("x es 5")
case 6:
fmt.Println("x es 6")
case 7:
fmt.Println("x es 7")
case 8:
fmt.Println("x es 8")
case 9:
fmt.Println("x es 9")
case 10:
fmt.Println("x es 10")
default:
fmt.Println("x es mayor a 10")
}
}
func ejemploSwitchRango() {
var numeroMes int = 3
var estacion string
switch {
case numeroMes >= 1 && numeroMes < 3:
estacion = "Invierno"
case numeroMes >= 3 && numeroMes < 6:
estacion = "Primavera"
case numeroMes >= 6 && numeroMes < 9:
estacion = "Verano"
case numeroMes >= 9 && numeroMes < 12:
estacion = "Otoño"
default:
estacion = "Ninguna Estación del Año!"
}
fmt.Println(estacion)
}
func ejemploSwitchConTexto() {
var x string = "def"
// Evalúa el valor de la variable 'x' en una estructura 'switch'
switch x {
// Si 'x' es igual a "abc"
case "abc":
// Imprime en la consola el mensaje "x es abc"
fmt.Println("x es abc")
case "def":
// Imprime en la consola el mensaje "x es def"
fmt.Println("x es def")
// Si 'x' no es igual a "abc" ni a "def"
default:
// Imprime en la consola el mensaje "x es otra cadena"
fmt.Println("x es otra cadena")
}
}
💪 Practica con estos ejercicios de condicionales en Go y envía la solución como un Pull Request a este repositorio: Go Para Principiantes
🎯 10 Ejercicios de condicionales en Go
🎯 10 Ejercicios de switch en Go
🔑 Resumen en 3 puntos:
🎉 Ahora que has aprendido sobre condicionales y switch en Go, es hora de poner en práctica tus habilidades. Trabaja en los ejercicios mencionados y envía tus soluciones como Pull Requests al repositorio Go Para Principiantes. ¡Buena suerte y diviértete programando en Go! 🎉
Creador de contenido principalmente acerca de tecnología.