Programación de Apps iOS para iPhone con Swift y SwiftUI - LaFactoríaApple

Operadores Lógicos

Si tu objetivo es aprender y dedicarte a la Programación de Apps para iPhone, tendrás que utilizar en infinidad de ocasiones los Operadores Lógicos para hacer que tus Aplicaciones cobren vida y puedan tomar decisiones en función de unos valores o de la interacción de los usuarios.

Gracias a los Operadores Lógicos podremos evaluar condiciones más complejas

OperadorDescripción
!(NOT) No Lógico. Invierte un valor booleano, es decir, true se convierte en false y false se convierte en true
&&(AND) Y Lógico. Es verdadero (true) cuando los dos operandos son verdaderos, y falso (false) en cualquier otro caso
||(OR) O Lógico. Es verdadero (true) cuando cualquiera de los dos operandos son verdaderos, y falso (false) cuando los dos operandos son falsos

Veamos algunos ejemplos de su aplicación cuando trabajamos con las Funciones Condicionales if/else.

Operador Y Lógico (AND)

Es un Operador Binario que requiere de dos argumentos booleanos. Obtendremos el resultado verdadero (true) cuando los dos operandos son verdaderos, y falso (false) en cualquier otro caso

Supongamos el caso de una compañía aerea que sólo permite embarcar a aquellas personas que son mayores de 18 años y evidentemente tenga el correspondiente billete de avión, es decir, se tienen que cumplir las dos condiciones. Tendremos que utilizar el Operador Lógico &&.

Creamos un Playground y escribimos las siguientes líneas de Código:

var edad : Int = 19
var tieneBilleteAvion : Bool = true

if edad > 18 && tieneBilleteAvion {
    print ("Puedes embarcar en el Avión")
}else{
    print ("NO puedes embarcar en el Avión")
}

Veamos el resultado en la Consola de Xcode

Operador NO Lógico (NOT)

Se trata de un Operador Unario que se aplica a un valor booleano. Nos da como resultado lo contrario del valor al que se aplica. Invierte un valor booleano, es decir, true se convierte en false y false se convierte en true

En el siguiente ejemplo, nuestra aplicación controla el acceso a un comedor universitario, dejando pasar a aquellas personas que todavía no han comido. La Condición Lógica será la negación ! de la variable hasComido. Se leerá de la siguiente forma: if !hasComido Si NO has comido entonces se ejecuta el primer bloque de código, en caso contrario se ejecutará el segundo bloque de código.

var hasComido : Bool = false

if !hasComido {
    print ("Puedes pasar y comer")
}else{
    print ("Sólo pueden pasar aquellas personas que todavía no han comido")
}

Operador O Lógico (OR)

Es un Operador Binario que requiere de dos argumentos booleanos. Obtendremos el resultado verdadero (true) cuando cualquiera de los dos operandos son verdaderos, y falso (false) cuando los dos operandos son falsos

Supongamos un ejemplo en el que evaluaremos si podemos comprar un artículo, para lo cual basta que tengamos suficiente saldo en efectivo o en el banco.

var suficienteSaldoEfectivo = true
var suficienteSaldoBanco = false

if suficienteSaldoEfectivo || suficienteSaldoBanco {
    print("Puedes comprar el artículo")    
}else{
    print("No puedes comprar el artículo")
}

Efectivamente, como una de los dos operandos es true, entonces el resultado de la Operación O Lógico es también true

Encadenar Operadores Lógicos

Al igual que otros Operadores Matemáticos, podemos encadenar varios Operadores Lógicos.

Retomamos el ejemplo anterior en el que podíamos comprar un artículo si teníamos suficiente saldo en efectivo o en el banco. Pero ahora queremos añadir otra condición: Sólo podremos comprar si además somos Socios de la tienda.

var suficienteSaldoEfectivo = true
var suficienteSaldoBanco = false
var eresSocio = true

if (suficienteSaldoEfectivo || suficienteSaldoBanco) && eresSocio {
    print("Puedes comprar el artículo")    
}else{
    print("No puedes comprar el artículo")
}

El resultado de suficienteSaldoEfectivo || suficienteSaldoBanco es true y el valor de eresSocio también es true. Por lo que el resultado de true && true también es true.

Hay que tener especial precaución con el uso de los paréntesis ya que puede cambiar el resultado de la operación según como los coloquemos.

Ficheros Adjuntos

Más en esta Sección

  • Instrucciones if anidadas

  • Operador Ternario en Swift

  • Instrucción else if

  • Operadores de Comparación

  • Instrucciones if/else en Swift