Logical operators in programming

    Logical operators are also called boolean operators. They operate
with truth(boolean) values and the result is always a truth value (true
or false). These operators are useful if you want to combine several
conditions into a single statement.

Do you learn better from video?

Learn faster with deeper understanding!
The “Computer programming for beginners” course is the perfect place to begin with programming.

Start now!

    The new operators: &&(AND), ||(OR), ^(XOR), !(NOT).
Before
we analyze each of them, let’s recall what is a boolean data type. It
holds a truth value. You can take a quick look in the Data Type lesson.

&& Logical AND

Logical AND, also known as conjunction.
It takes two operands. Returns “true” if both operands are true, otherwise returns “false”. For example we use three variables: bLeft, bRight, bResult:

bResult = bLeft && bRight
bResult will be “true” only if “bLeft” AND “bRight” are “true”. We can represent this in a truth table.

bLeft bRight bResult
true true true
true false false
false true false
false false false

    Take your time and examine the table. Make sure you get the idea.

    Let’s put this into practice! Problem number 4 from your last homework(Previous lesson – math operators):
”Given are three numbers. Find if the second is the greatest.”

    Solution without conjunction:

Task solution without logical operators.

    Solution, using the logical AND:

Task solution using logical AND.

    See how we can combine 2 conditions in one block? Also note
that it is always a good practice to use parenthesis to separate them.
That improves code readability and prevents unexpected behavior.

|| Logical OR

Logical OR, also known as “disjunction”.
Accepts two arguments and returns “true” if at least one of them is “true”.
bResult = bLeft || bRight
bResult will be true, if “bLeft” OR “bRight” is true. Let’s create the truth table for this case:

bLeft bRight bResult
true true true
true false true
false true true
false false false

    And one example..

Logical operators - using disjunction.

 ^ XOR

The ^ operator is known with different names – Logical XOR, exclusive OR, sum by modulus of 2.
Accepts two arguments and returns “true” if exactly one of them is “true”.

bResult = bLeft ^ bRight
bResult will be true, if bLeft is “true” and bRight is “false” or bLeft is “false” and bRight is “true”.
Its truth table looks like this:

bLeft bRight bResult
true true false
true false true
false true true
false false false

 ! Logical NOT

Takes only one operand – right. The result is the opposite value of the operand.

bResult = !bRight;
bResult will be “true” if bRight is “false”.
You can guess how this table looks like 😉

bRight bResult
true false
false true

    We can use this in many cases. In fact, it is the logical operator that I use the most.

    In this example we check if a certain file exists. If it doesn’t – we create it.
We can combine NOT with the other logical operators:

!(bLeft && bRight)
    This forms the logical NOT AND. In schematics this is used extremely
often. They even have a separate element, called NOT AND (NAND).

De Morgan’s laws

    When you work with logical operators you could come across the De
Morgan’s laws. This is a little bit more advanced stuff. You may not
find this very useful right now, or it could be difficult to understand.
So don’t worry if you don’t get it on 100{b35c63bac5fac9ed648f97d4700fe9ffe9c190bec929f61ce1f7fc4e68d68241} ;-).
    The laws can be
proved mathematically, but it is far out of our scope. Instead we want
to focus on the logical operators and how they work. For exercise we will
test the laws with example values.

    For this example we will use letters for the names of our variables.

    First law:

!( (A && B) || (C && D) ) = (!A || !B) && (!C || !D)

    Let’s give values to our variables and check if this is indeed correct. We accept: A= true, B = false, C = true, D = true.

!( (true && false) || (true && true) ) =?=  (!true || !false) && (!true || !true)
=>
!(false || true) =?= (false || true) && (false || false)
=>
!true =?= true && false
=>
false == false

 
  OK, in this case it works. I suggest you substitute the variables
with another set of values and do the calculations on paper. This is a
very good training.

Second law:
!( (A || B) && (C || D) ) = (!A && !B) || (!C && !D)

    There are many other laws in the world of logical operators, but they are out of our way.

Homework

1. Take a paper (or some text editor 😉 ) and answer the questions with few words.

  • When && (Logical AND) returns true and when false?
  • When || (Logical OR) returns true and when false?
  • When ^ (Logical XOR) returns true and when false?
  • When ! (Logical NOT) returns true and when false?

    When you answer, check with the lesson if you are correct. If you have mistakes, try to figure out the logic again.

2. Write an algorithm that takes the gender and age from the user. Check if it is a woman under 40 years. Use logical operators to do the check in a single block. Tip: (You can use a char or string variable to remember and compare the gender).

3. Test the second law of De Morgan, just like we did with the first law in the current lesson.

Do you learn better from video?

Learn faster with deeper understanding!
The “Computer programming for beginners” course is the perfect place to begin with programming.

Start now!






› Logical operators

Tutorial Contents:

1)Learn
Computer Programming

2)Software Development Process
3)Flow
Chart

4)Flow
Chart Symbols

5)Data
Type

6)What is a variable
7)Math
Operators

8)Logical
Operators

9)Loops
10)Nested Loops
11)Arrays
12)Multidimensional arrays
13)Programming Questions


Did this help? Support me with your vote 😉


Source Article