05 Condicional IF
Published Apr 22, 2023
🧠 Introducción
Los condicionales permiten que un programa tome decisiones. Son esenciales para crear lógica dinámica, validaciones, flujos alternativos y respuestas a diferentes situaciones. En Go, usamos principalmente las estructuras if
y switch
.
Hoy nos enfocaremos en los if
y sus variantes.
1. 🧪 if
: La base de toda decisión
El if
evalúa una condición booleana. Si es true
, ejecuta el bloque de código.
🔤 Sintaxis básica:
if condición {
// Código si la condición es verdadera
}
En Go no se usan paréntesis para la condición, pero las llaves {} son obligatorias.
✅ Ejemplo:
percentage := 80
if percentage > 70 {
fmt.Println("¡Muy bien! Aprobaste.")
}
2. 🔁 else
y else if
else if
: permite evaluar más condiciones si la anterior no fue verdadera.else
: se ejecuta si ninguna condición anterior se cumple.
🎯 Ejemplo práctico:
now := time.Now()
if now.Hour() <= 11 {
fmt.Println("Buenos días")
} else if now.Hour() <= 18 {
fmt.Println("Buenas tardes")
} else {
fmt.Println("Buenas noches")
}
Asegúrate de que las condiciones estén bien ordenadas, de lo más específico a lo más general.
3. ❗ Operador de negación: !
Este operador invierte el valor de una expresión booleana.
isOnline := false
if !isOnline {
fmt.Println("El usuario está desconectado")
}
4. 🔗 Operadores lógicos: &&
y ||
&&
: todas las condiciones deben ser verdaderas.||
: basta con que una sola condición sea verdadera.
Ejemplo con &&
(AND):
hasMilk := true
hasCereal := true
if hasMilk && hasCereal {
fmt.Println("Desayuno asegurado")
}
Ejemplo con ||
(OR):
isWeekend := true
isHoliday := false
if isWeekend || isHoliday {
fmt.Println("¡Día libre!")
}
5. 🛠️ Manejo de errores con if
En Go, es buena práctica procesar errores justo después de detectarlos para evitar código innecesariamente anidado.
🔎 Ejemplo clásico:
result, err := doSomething()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(result)
🧼 Mejor forma: declarar dentro del if
if result, err := doSomething(); err == nil {
fmt.Println(result)
} else {
fmt.Println("Error:", err)
}
Esto ayuda a limitar el alcance de variables temporales.
6. 🙅 Evita anidaciones innecesarias
En vez de esto:
if condition1 {
if condition2 {
fmt.Println("Ambas condiciones se cumplen")
}
}
Haz esto:
if condition1 && condition2 {
fmt.Println("Ambas condiciones se cumplen")
}
7. ✅ Buenas prácticas
- Usa
else
solo cuando lo necesites. - Agrupa condiciones lógicas con
&&
o||
. - Declara variables en el
if
solo si se usan ahí. - Procesa errores inmediatamente y evita anidar bloques si no es necesario.
✅ Conclusión
- Los condicionales permiten que tu programa tome decisiones basadas en valores.
- Go te ofrece una forma clara, limpia y poderosa de usar
if
,else if
yelse
. - Los operadores lógicos
&&
,||
y!
permiten construir condiciones más completas. - El manejo de errores en condicionales es una de las prácticas clave en Go.
🛠️ Práctica recomendada
- Escribe un programa que:
- Reciba una hora simulada (como número entero).
- Imprima “Buenos días”, “Buenas tardes” o “Buenas noches” según la hora.
- Declara dos variables booleanas (
isWeekend
,isHoliday
) y usaif
con operadores lógicos para imprimir si tienes día libre. - Simula una función que devuelve un valor y un error, y usa condicionales para procesarlo adecuadamente.
🚀 Siguientes pasos
Ahora que dominas los condicionales, te recomiendo seguir con:
- 🔁 Bucles (
for
): Cómo repetir bloques de código. - ⚖️
switch
en Go: Alternativas elegantes alif-else
. - 📦 Funciones: Organizar tu lógica en bloques reutilizables.