In the last few blocks, we learnt about predicate blocks and conditional blocks. What is one thing common in both of them? Well, predicate blocks evaluate to a boolean value, that is true or false, and conditional blocks use boolean expressions or values to define the code flow.
In this blog, we will deep-dive into the boolean expressions and boolean operators.
What is a Boolean Expression?
Boolean expression is an expression which evaluates to true or false. The term Boolean is derived from George Boole. As we saw in the previous blogs, all boolean expression blocks in SNAP! can be recognized by their trapezoidal shape.
What are Boolean Operators?
Boolean Operators are the operators used to define the relationship between different terms and evaluate to true or false. There are three Boolean Operators: and, or, and not.
And Operator
And operator evaluates to true only when all the individual expressions involved in the equation are true. If any of the expression is false, and operator will result into false. Let’s take an example of a simple equation with two sub-expressions and see what and operator will evaluate to.
Expression 1 | Expression 2 | Expression 1 AND Expression 2 |
---|---|---|
false | false | false |
false | true | false |
true | false | false |
true | true | true |
Now it’s not as cryptic as it looks in the first go. Let’s look at this table again with an example of Harry who wants to buy both Chocolates AND Jell Beans from the same store. He goes around the city to different stores, which can fulfill his wish. This is what his examination criteria will look like:
Store Has Chocolate | Store Has Jelly Beans | Will Harry buy from that store? Store HAS Chocolate AND Store has jelly beans |
---|---|---|
false (No) | false (No) | false (Harry will not buy!) |
false (No) | true (Yes) | false (Harry will not buy!) |
true (Yes) | false (No) | false (Harry will not buy!) |
true (Yes) | true (Yes) | true (Harry will buy!) |
Or Operator
Or operator evaluates to false only when all the individual expressions involved in the equation are false. If any of the expression is true, or operator will result into true. Let’s take an example of a simple equation with two sub-expressions and see what or operator will evaluate to.
Expression 1 | Expression 2 | Expression 1 OR Expression 2 |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | true |
Again, let’s look at this table with the example of Harry who wants to buy either Chocolates OR Jell Beans from a store. He goes around the city to different stores, which can fulfill his wish. This is what his examination criteria will look like:
Store Has Chocolate | Store Has Jelly Beans | Will Harry buy from that store? Store HAS Chocolate OR Store has jelly beans |
---|---|---|
false (No) | false (No) | false (Harry will not buy!) |
false (No) | true (Yes) | true (Harry not buy!) |
true (Yes) | false (No) | true (Harry not buy!) |
true (Yes) | true (Yes) | true (Harry will buy!) |
Not Operator
Not operator is a simple negation operator. If the input expression is false, not operator returns true, and if the input expression is true, not operator returns false. Here are the results of applying not operator on any expression:
Expression | NOT Expression |
---|---|
false | true |
true | false |
Try to use Boolean Operators with some more examples. It may sound confusing at first, but is a very simple concept, which is used often in computer science.
Challenge: What will this Boolean Expression evaluate to: 5 < 7 AND 4 > 2
What does Boolean Operators look like in SNAP!?
SNAP! supports both Boolean expressions and operators. In fact, Boolean operators are also Boolean expressions. You can use the following blocks in Operators palette to use Boolean Operators:
Hope this post helped you in enhancing your understanding of Boolean Expressions and Boolean Operators. Feel free to share your feedback/questions in the comments below.
It works very well for me