05 Condicional IF

Published Apr 22, 2023

GoProgrammingIfConditions

🧠 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

  1. Usa else solo cuando lo necesites.
  2. Agrupa condiciones lógicas con && o ||.
  3. Declara variables en el if solo si se usan ahí.
  4. 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 y else.
  • 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

  1. 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.
  2. Declara dos variables booleanas (isWeekend, isHoliday) y usa if con operadores lógicos para imprimir si tienes día libre.
  3. 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 al if-else.
  • 📦 Funciones: Organizar tu lógica en bloques reutilizables.