Skip to main content

Logical Operators

We can use logical operators to invert or combine two or more boolean expressions. In the following table, we can see the logical operators in Dart:

NameOperatorDescription
Not!aInvert the value of a. Example: true will become false
Ora || bCombine two boolean expressions. If one of them is true then returns true
Anda && bCombine two boolean expressions. If one of them is false then returns false

Not: !

The not operator (a!) invert the variable's value. If it's true, then will become false. Example:

var a = true;

print(a); // prints true
print(!a); // prints false

And: &&

The and operator ( && ) combines two boolean expressions. If one is false, it evaluates to false. If both are true, it evaluates to true. Example:

final alice = 25;
final rebecca = 16;

if (alice >= 18 && rebecca >= 18) {
print('Alice and Rebecca are 18 or more years old');
} else {
print('Alice and/or Rebecca are less then 18 years old');
}

The previous code will print Alice and/or Rebecca are less than 18 years old because Rebecca is younger than 18, so the and operator returned false, and the code inside the else was executed.

OR: ||

The or operator ( || ) combines two boolean expressions. If one is true, it evaluates to true. If both are false, it evaluates to false. Example:

final alice = 25;
final rebecca = 16;

if (alice >= 18 || rebecca >= 18) {
print('Alice or Rebecca are 18 or more years old');
} else {
print('Alice and Rebecca are less then 18 years old');
}

The previous code will print Alice or Rebecca are 18 or more years old because Alice is older than 18, so the or operator returned true, and the code inside the if was executed.

Let's run the previous examples in DartPad: