1 Visión general de las declaraciones condicionales
Las declaraciones condicionales son herramientas importantes para controlar el flujo lógico de los programas en programación. En Golang, las declaraciones condicionales son similares a las de otros lenguajes de programación, pero tienen sus propias características. Nos permiten decidir qué código ejecutar basado en condiciones verdaderas o falsas, aumentando en gran medida la flexibilidad y mantenibilidad del código.
2 Declaración if
2.1 Uso básico de la declaración if
La declaración if
es la declaración condicional más básica en el lenguaje Go. Su sintaxis es la siguiente:
if condición {
// Código a ejecutar cuando la condición es verdadera
}
Aquí hay un ejemplo simple:
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x es mayor que 5")
}
}
Este código verificará si x
es mayor que 5, y si lo es, realizará la operación de impresión.
2.2 Expresiones condicionales
Las expresiones condicionales consisten en operadores de comparación (como ==
, !=
, <
, >
, <=
, >=
) y operadores lógicos (como &&
(Y), ||
(O), !
(NO)).
Por ejemplo, para verificar si una variable se encuentra dentro de un rango específico:
y := 20
if y >= 10 && y <= 30 {
fmt.Println("y está entre 10 y 30")
}
La expresión condicional anterior utiliza el operador lógico &&
para asegurar que el valor de y
esté entre 10 y 30.
2.3 Estructura if...else y else if
Cuando la condición del if
no se cumple, podemos usar else
para ejecutar un bloque de código alternativo. El else if
nos permite verificar múltiples condiciones. Aquí hay un ejemplo:
puntuación := 88
if puntuación >= 90 {
fmt.Println("Excelente")
} else if puntuación >= 80 {
fmt.Println("Bien")
} else if puntuación >= 70 {
fmt.Println("Promedio")
} else {
fmt.Println("Por debajo del promedio")
}
Este código imprimirá diferentes evaluaciones basadas en el valor de puntuación
.
3 Declaración switch
3.1 Sintaxis básica de switch
La declaración switch
es una declaración de rama condicional más concisa, especialmente adecuada para situaciones donde se necesitan evaluar múltiples valores. La sintaxis básica de la declaración switch
es la siguiente:
switch expresión {
case valor1:
// Código a ejecutar cuando coincide con valor1
case valor2:
// Código a ejecutar cuando coincide con valor2
default:
// Código a ejecutar por defecto
}
Si el valor de expresión
coincide con el valor que sigue a case
, se ejecutará el respectivo bloque de código.
3.2 Fallthrough de switch
En la declaración switch
de Go, cada rama no cae automáticamente al siguiente caso a menos que se utilice la palabra clave fallthrough
.
switch num {
case 1:
fmt.Println("Uno")
fallthrough
case 2:
fmt.Println("Dos")
default:
fmt.Println("Ni Uno ni Dos")
}
En el código anterior, si num
es 1, aunque coincide con caso 1
, debido a la presencia de la palabra clave fallthrough
, el programa continuará ejecutando el código en caso 2
e imprimirá "Dos".
3.3 Ramificación por tipo y ramificación personalizada
La declaración switch
también admite ramificación basada en tipos de variables, conocida como ramificación por tipo. Además, podemos crear condiciones de ramificación personalizadas más complejas.
Ejemplo de ramificación por tipo:
var i interface{} = 1
switch i.(type) {
case int:
fmt.Println("i es un entero")
case float64:
fmt.Println("i es un float64")
default:
fmt.Println("i es otro tipo")
}
Las condiciones de ramificación personalizadas se pueden escribir para realizar juicios condicionales más complejos según sea necesario.
4 Ejercicio práctico
En esta sección, profundizaremos en nuestra comprensión y aplicación de las declaraciones condicionales en Golang a través de ejemplos específicos. A través de desafíos prácticos de programación, te volverás más competente en el uso de las declaraciones if
y switch
para resolver problemas del mundo real.
Calculadora de Calificaciones
Vamos a escribir una sencilla calculadora de calificaciones. Este programa determinará y mostrará la calificación correspondiente basada en la puntuación ingresada por el usuario. Los criterios de calificación son los siguientes:
- A para puntuaciones de 90 o más
- B para puntuaciones entre 80 y 89
- C para puntuaciones entre 70 y 79
- D para puntuaciones entre 60 y 69
- F para puntuaciones por debajo de 60
Podemos usar tanto una declaración if
como una declaración switch
para implementar esta funcionalidad. Primero, veamos un ejemplo utilizando una declaración if
:
package main
import (
"fmt"
)
func main() {
var score int
fmt.Print("Por favor, ingresa la puntuación: ")
fmt.Scan(&score)
if score >= 90 {
fmt.Println("Calificación: A")
} else if score >= 80 {
fmt.Println("Calificación: B")
} else if score >= 70 {
fmt.Println("Calificación: C")
} else if score >= 60 {
fmt.Println("Calificación: D")
} else {
fmt.Println("Calificación: F")
}
}
En este código, primero declaramos una variable score
para almacenar la puntuación ingresada por el usuario. Utilizamos la función fmt.Scan
para obtener la entrada del usuario. Luego, utilizamos varias declaraciones if
y else if
para determinar la calificación correspondiente para la puntuación y utilizamos la función fmt.Println
para mostrar la calificación.
A continuación, veamos un ejemplo utilizando una declaración switch
:
package main
import (
"fmt"
)
func main() {
var score int
fmt.Print("Por favor, ingresa la puntuación: ")
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("Calificación: A")
case score >= 80:
fmt.Println("Calificación: B")
case score >= 70:
fmt.Println("Calificación: C")
case score >= 60:
fmt.Println("Calificación: D")
default:
fmt.Println("Calificación: F")
}
}
En el ejemplo utilizando la declaración switch
, la estructura del código es más concisa y clara. No necesitamos usar muchas declaraciones if
y else if
consecutivas; en su lugar, especificamos directamente las condiciones en cada case
después del switch
. La puntuación que no cumple con la condición del case
anterior pasará automáticamente al siguiente case
hasta que coincida con la rama condicional correspondiente o alcance el caso default
, que muestra la calificación F
.
Ahora que has aprendido cómo utilizar if
y switch
para realizar juicios condicionales, intenta escribir tu propio programa y practicar para profundizar tu comprensión.
En la siguiente sección, continuaremos presentando problemas más prácticos para ayudarte a consolidar tu dominio de las declaraciones condicionales en Golang.
Ten en cuenta que el código anterior es para fines instructivos. Cuando se utilice en aplicaciones prácticas, se deben considerar factores como la interacción con el usuario y el manejo de errores para hacerlo más sólido.