Este tutorial pretende ser muy sencillo. Simplemente explica cómo funciona la sentencia if, else y switch. Veremos cómo a veces vamos a preferir switch, y cómo aquí no tenemos que utilizar break cuando lo utilizamos.
Comencemos con la sentencia if. A diferencia de otros lenguajes, la condición no va entre paréntesis. Y aunque el cuerpo ocupe una línea, debemos encerrarlo entre llaves.
Recuerdo que cuando inicié a programar (con C) hace algunos años, me ocurrió algo muy gracioso. No sabía cómo hacer un else sin un if. Es decir, dejaba el if (con la condición) vacío, y ejecutaba el código sólo en el bloque del else.
Si tan sólo mis profesores (y no los culpo) me hubieran enseñado que las condiciones se pueden negar con ! las cosas serían distintas. En fin, podemos negar una variable, el resultado de una función, etcétera.
packagemainimport"fmt"funcmain(){
if !false{
fmt.Println("Verdadero")
}
}
En este caso estamos negando a false, lo que da como resultado true.
Dos de las compuertas lógicas básicas: and, en donde todas las condiciones deben cumplirse. Y or, en donde al menos una de ellas debe cumplirse.
packagemainimport"fmt"funcmain(){
if5 > 0&&10 > 9{
// Algo si se cumplen ambas condiciones// En este caso se cumplen ambasfmt.Println("5 > 0 && 10 > 9")
}
if1 < 2&&5 > 1{
// 5 es mayor que 1, pero 1 no es menor que 2, así que no se cumplefmt.Println("1 < 2 && 5 > 1")
}
if4 > 9||3 < 10{
// Ejecutar algo si una de las dos condiciones se cumple// En este caso se cumplirá 3 < 10, aunque 4 > 9 nofmt.Println("4 > 9 || 3 < 10")
}
if50 < 40||0 > 5{
// No se cumple ninguna condiciónfmt.Println("50 < 40 || 0 > 5")
}
}
La salida al ejecutar el programa es la siguiente:
Puede que deseemos ejecutar múltiples cosas en varios bloques if, así:
packagemainimport"fmt"funcmain() {
numero:=10ifnumero%2==0{
fmt.Println("10 es múltiplo de 2")
}
ifnumero%3==0{
fmt.Println("10 es múltiplo de 3")
}
ifnumero%5==0{
fmt.Println("10 es múltiplo de 5")
}
}
En este caso utilizamos el operador módulo, que se encarga de sacar el residuo de una división. Por ejemplo, al dividir 10 entre 3, el residuo es 1; es por ello que sabemos que 10 no es múltiplo de 3. Pero no pasa lo mismo con 5 y 2.
A veces es necesario asignar una variable que utilizaremos dentro de la condición. Para ello, podemos hacerlo como en los ejemplos de arriba, en donde asignamos calificación. O podemos hacerlo así:
packagemainimport"fmt"funcmain(){
ifedad:=15; edad < 18 {
fmt.Println("Menor de edad")
}else{
fmt.Println("Mayor de edad")
}
}
En este caso es un ejemplo sin sentido, pues no utilizamos a edad dentro del if o else, pero ilustra correctamente.
Por favor notar que esta variable sólo vivirá dentro del if (y else, si es que ponemos); ya que si la queremos utilizar fuera de éstos habrá errores.
Para terminar, veremos cómo asignar un valor dependiendo de una condición.
packagemainimport"fmt"funcmain(){
accesoPermitido:=falseedad:=18ifedad>=18{
accesoPermitido = true }
ifaccesoPermitido{ // Notar que no es necesario comparar accesoPermitido == truefmt.Println("Acceso concedido!")
}
}
Qué bueno que hice este ejemplo, así también puedo demostrar que si una variable es booleana o devuelve un booleano, no es necesario compararlo con == true o con == false. Es decir, es lo mismo:
Esto será sencillo. Switch es como un if, pero más limpio. Permite comparar muchas condiciones, y sólo evalúa una de ellas; cuando se cumple, ya no ejecuta las demás.
Lo que más me gusta de esto es que podemos no sólo comparar números, sino cadenas y resultados de funciones.
Si ninguna condición se ejecuta, se llama a default.
Finalmente quiero hacer que noten que no es necesario el uso de break como en otros lenguajes, ya que el switch se termina cuando una de sus condiciones se cumple.
Podemos evaluar varias condiciones que se verían confusas con bloques if. Notar por favor que es como si se comparase con ==, y no podemos utilizar >= o <=
packagemainimport"fmt"funcmain(){
descuento:=50switchdescuento{
case90:
fmt.Println("Se descuenta el 90 por ciento")
case70:
fmt.Println("Se descuenta el 70 por ciento")
case50:
fmt.Println("Se descuenta el 50 por ciento")
case30:
fmt.Println("Se descuenta el 30 por ciento")
case10:
fmt.Println("Se descuenta el 10 por ciento")
default:
fmt.Println("No hay descuento")
}
}
Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya
actualizado algún sistema o publicado un nuevo software.
Facebook
| X
| Instagram
| Telegram |
También estoy a tus órdenes para cualquier contratación en mi página de contacto