DEV Community

David Goyes
David Goyes

Posted on

Swift #8: Condicionales y operadores booleanos

Con if se puede verificar una condición y ejecutar un grupo de enunciados si se cumple.

let edad = 20
if edad > 18 {
  print("Mayor de edad")
}
Enter fullscreen mode Exit fullscreen mode

Al grupo de enunciados encerrado entre llaves se lo conoce como "bloque de código".

Operadores booleanos

  • ==: Retorna true si el valor izquierdo es igual que el derecho.
  • !=: Retorna true si el valor izquierdo es diferente al derecho.
  • >: Retorna true si el valor izquierdo es mayor que el derecho.
  • <: Retorna true si el valor izquierdo es menor que el derecho.
  • >=: Retorna true si el valor izquierdo es mayor o igual que el derecho.
  • <=: Retorna true si el valor izquierdo es menor o igual que el derecho.
  • !x: Retorna true si x es false (NOT).
  • A && B: Retorna true si A y B son true (AND).
  • A || B: Retorna true si A o B son true (OR).

Evaluación de cortocircuito

El condicional de Swift funciona con evaluación de cortocircuito, lo cual implica que los operadores lógicos no evalúan todas las condiciones, sino solo las necesarias:

  • En una cadena con &&, Swift se detiene en cuanto encuentra el primer false.
  • En una cadena con ||, Swift se detiene en cuanto encuentra el primer true.

Doble ramificación

En ocasiones, hay que ejecutar un bloque cuando la condición se cumple y otro cuando no se cumple. Para ello se usa la expresión if else.

let edad = 20
if edad > 18 {
  print("Mayor de edad")
} else {
  print("Menor de edad")
Enter fullscreen mode Exit fullscreen mode

Asignación condicional

Si se quiere usar if else para asignar un valor a una variable, se puede asignar directamente de la siguiente manera:

let edad = 20
let mensaje = if edad > 18 {
  "Mayor de edad"
} else {
  "Menor de edad"
}
print(mensaje) // Mayor de edad
Enter fullscreen mode Exit fullscreen mode

Operador ternario

Un operador ternario se compone de una condiciones y dos valores que devolveríamos en cada caso (se cumpla la condición o no), separados con los caracteres ? y :.

let edad = 20
let mensaje = edad > 18 ? "Mayor de edad" : "Menor de edad"
print(mensaje) // Mayor de edad
Enter fullscreen mode Exit fullscreen mode

Top comments (0)