Condicionales en Go
Jan 05, 2023
Updated: Jun 24, 2026

Condicionales 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 ejecutan según ciertas condiciones. Veamos cada estructura paso a paso.

If, Else y Else If

Los condicionales "if / else if" son una forma de tomar decisiones en programación. Funcionan de la siguiente manera:

  • Se inicia con un if que evalúa una condición. Si la condición es verdadera, se ejecuta el bloque de código asociado a ese if.
  • Si la condición del primer if es falsa, se pasa al siguiente else if (si lo hay). Se evalúa su condición y, si es verdadera, se ejecuta el bloque de código asociado a ese else if.
  • Este proceso se repite para cada else if en secuencia hasta encontrar una condición verdadera o hasta que no haya más else if. Cuando se encuentra una condición verdadera, se ejecuta su bloque de código y se sale de la estructura condicional.
  • Si ninguna de las condiciones if o else if es verdadera, se ejecuta el bloque de código del else (si está presente), que es el último recurso.

Veamos un primer ejemplo, un condicional que evalúe si una variable es mayor que el número 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 no es mayor a 10")
	}

}

Fíjate en el mensaje del else: como esta rama se ejecuta siempre que la condición x > 10 es falsa, también cubre el caso en que x es exactamente 10. Por eso decimos "x no es mayor a 10" y no "x es menor a 10", que dejaría fuera al valor 10.

A diferencia de otros lenguajes, en Go los condicionales no requieren paréntesis alrededor de la condición a evaluar. En cambio, la llave { que abre el bloque es obligatoria y debe ir en la misma línea que la condición. Si la pones en la línea siguiente, el código no compila.

Veamos ahora un ejemplo de if / else if, donde puedo añadir 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")
	}
}

Switch en Go

La estructura switch es una forma de control de flujo 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 con 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, en lenguajes modernos como Go el break es implícito y no hace falta escribirlo. Si quieres el comportamiento contrario, es decir, que la ejecución continúe en el case siguiente, puedes usar de forma explícita la palabra clave fallthrough.
  • default: puedes incluir un default al final del switch, que se ejecuta si ninguno de los case coincide. Es similar a un else en una estructura if / else.

Ejemplo de switch:

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")
	}
}

Ejemplo de switch / case con intervalos:

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)
}

Ejemplo de switch / case con cadenas de caracteres:

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")
	}
}

Ejercicios propuestos

Practica con estos ejercicios de condicionales en Go y envía la solución como un Pull Request a este repositorio: Go Para Principiantes.

Nota: verificar que la URL del repositorio "Go Para Principiantes" sea la correcta y que siga publicada antes de difundir el post. verify

10 ejercicios de condicionales en Go:

  1. Imprime un mensaje diferente dependiendo de si un número es par o impar.
  2. Dados dos números enteros, imprime el mayor de los dos.
  3. Dados tres números enteros, imprime el mayor de los tres.
  4. Imprime un mensaje diferente si un número es positivo o negativo.
  5. Lee un número entero y determina si es divisible entre 5.
  6. Lee un número entero y determina si es divisible entre 3 y 5 al mismo tiempo.
  7. Lee dos números enteros y determina si el primero es mayor que el segundo.
  8. Lee tres números enteros y determina si el primero es igual al segundo y al tercero.
  9. Lee dos números enteros y determina si el primero es menor que el segundo o si son iguales.
  10. Lee un número entero y determina si es par o impar y si es positivo o negativo.

10 ejercicios de switch en Go:

  1. Imprime un mensaje diferente dependiendo de si un número está entre 0 y 5, entre 5 y 10, entre 10 y 20, o es mayor que 20.
  2. Dados dos números enteros, imprime la letra correspondiente a la calificación apropiada.
  3. Dados tres números enteros, imprime la letra correspondiente a la calificación apropiada.
  4. Lee un número entero y determina la clase de número que es.
  5. Lee un número entero entre 0 y 5 y determina a qué letra corresponde.
  6. Lee un número entero entre 5 y 10 y determina a qué letra corresponde.
  7. Lee un número entero entre 10 y 20 y determina a qué letra corresponde.
  8. Lee un número entero mayor que 20 y determina a qué letra corresponde.
  9. Lee un número entero y determina si es par o impar y si es positivo o negativo.
  10. Lee un número entero y determina si es divisible entre 2, 3, 4, 5 o 6.

Resumen en 3 puntos

  1. Los condicionales en Go (if, else, else if) permiten controlar el flujo de un programa según una o varias condiciones, sin paréntesis alrededor de la condición pero con la llave de apertura obligatoria en la misma línea.
  2. La sentencia switch en Go facilita comparar una variable contra múltiples expresiones y ejecuta el bloque asociado a la coincidencia; el break es implícito y fallthrough te permite continuar en el siguiente case cuando lo necesitas.
  3. Practicar con ejercicios de condicionales y switch en Go te ayuda a mejorar el control del flujo de tus programas y a comprender mejor cómo tomar decisiones basadas en condiciones y expresiones.

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.

Eso es todo, espero que este post te sea de utilidad y lo puedas aplicar a algún proyecto que tengas en mente. Déjame un comentario si te sirvió o si tienes alguna duda, y recuerda que si te gustó también puedes compartirlo usando los links a las redes sociales aquí abajo. Buena suerte y diviértete programando en Go.

Sebastian Gomez

Sebastian Gomez

Creador de contenido principalmente acerca de tecnología.

Leave a Reply

0 Comments

Advertisements

Related Posts

Categorias