Friday, February 13, 2015

Operators Rivisited Hierarchy of Operators NOT and Conditional Operator in C

Today we will re-visit the operators once again. In the tutorial of logical operators deliberately missed the NOT operator.

Why? Ah… it’s a bit confusing and I don’t want to ruin the next important topics due to that operator.

NOT Operator (!)

The NOT operator (!) is used to reverse the results. This operator is mainly used as a key in big complex programs. By using this operator we can reverse the condition easily. Lets try to understand it with an example.

If ( !(y>6) )

In the above statement I am writing a condition that y should be lesser than or equal to 6. I can also write the same condition as

If (y<=6)

Both the statements will give the same results. You can use anyone of them.

Hierarchy of Operators

I have given the hierarchy of operators after arithmetic operators. Now we have learnt about the logical operators (AND OR NOT) too. So the new hierarchy of operators is given below.

Hierarchy of Operators

Conditional Operators

They are also called ternary operators. As we have to use three arguments to use this operator.

General form of Conditional/Ternary operator

(Expression 1 ? expression 2 : expression 3)

It is generally used to avoid small if-else statement. Remember it is not the alternative of if-else clauses. It can used at some places.

Lets try to understand it with some simple example.

if (x==10)
   Y=3;
else
   Y=9;

In the above we are basically checking if x is equal to 10. If condition turns true then it will assign y as 3. Otherwise it will assign y as 9. The same task can be completed using ternary operator.

Y=(x==10 ? 3 : 9);

I hope everyone will agree with the fact that above example is very much compact than the earlier version.

Another example to use ternary operators is given below.

( x > 4 ? printf ( "Value is greater than 4" ) : printf ( "Value is less than 4" ) ) ;

Nested Conditional Operator

Well nested conditional operators are used very rarely but they are good to make the program compact.
A small example of nested ternary operator is given below

Small = ( x < y ? ( x > z ? 9: 10 ) : ( y > z ? 14: 16 ) ) ;

In the above example small is the variable and it will store

9 if x<y and x>z
10 if x<y and x<z
14 if x>y and y>z
16 if x>y and y<z

Sounds confusing? Well that’s why they are used rarely. But like our example, it can sometimes make the program compact.

So that’s all for decision control instructions. I recommend you to make programs and practice for at least 2 days before proceeding further. In the next tutorial I will cover an overview to loops in C programming.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.