Operadores Lógicos
Los operadores lógicos sirven para invertir o combinar expresiones booleanas. En Dart existen los siguientes operadores lógicos:
Nombre | Operador |
---|---|
Negación | !a |
o (OR) | a || b |
y (AND) | a && b |
Negación
La negación !a
invierte el valor de la variable. Si es true
se convierte en false
y viceversa.
var a = true;
print(a);
print(!a);
Y (AND)
El operador Y a && b
regresa un valor true
si a y b son true
. Explicado de otra forma primero se evalúa
la expresión de la izquierda, si es true
se evalúa la expresión de la derecha, si ambas son true
entonces el
valor de retorno es true
. Por ejemplo:
final alicia = 5;
final gerardo = 1;
if (alicia >= 18 && gerardo >= 18) {
print('Alicia y Gerardo son mayor que 18');
} else {
print('Alicia y/o Gerardo son menores de 18');
}
En el código anterior solo si alicia
y gerardo
son mayores o iguales que 18 imprimimos Alicia y Gerardo son mayor que 18
si alguno de los 2 es mayor y el otro menor entonces imprimimos la expresión dentro del else
.
O (OR)
El operador O a || b
regresa un valor true
si a ó b son true
. Explicado de otra forma primero se evalúa la
expresión de la izquierda, si es true
regresa true pero si es false
evalúa la expresión de la derecha, si
es true
regresa true
.
Más simple es solo recordar con que una de las dos expresiones sea true el valor de retorno es true. Por ejemplo:
final alicia = 21;
final gerardo = 15;
if (alicia >= 18 || gerardo >= 18) {
print('Alicia y/o Gerardo son mayores de 18');
} else {
print('Ninguno es mayor de 18');
}
En el código anterior con que uno sea mayor de 18 vamos a imprimir Alicia y/o Gerardo son mayores de 18
de lo
contrario imprimimos la expresión dentro del else
.
Puedes correr el código en DartPad y ver el funcionamiento: