177 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			177 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Operators
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Operators :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Operators let you perform operations on your data.
							 | 
						||
| 
								 | 
							
								* The data that is being operated on is called the  _operand_ .
							 | 
						||
| 
								 | 
							
								* The different types of operators in C++ are : 
							 | 
						||
| 
								 | 
							
								* *OPERANDS* are the data on which the operator performs certain commands.
							 | 
						||
| 
								 | 
							
								* Operators are of 3 types : unary(works on 1 operand), binary(works on 2 operands) , ternary(works on 3 operands).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 1 The I/O operators -
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* These operators allow you to direct input and output.
							 | 
						||
| 
								 | 
							
								 ## The Input oerator ">>" ## 
							 | 
						||
| 
								 | 
							
								 is used to read data from standard input (the "cin" statement) .  
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 ##The Output operator "<<"##
							 | 
						||
| 
								 | 
							
								 is used to send output in the `cout` statement.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 2 The Arithmetic operators -
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* These operators allow you to perform basic arithmetic operations.
							 | 
						||
| 
								 | 
							
								 1. The `+` operator *adds* the two operands.
							 | 
						||
| 
								 | 
							
								 2. The `-` operator *subtracts* the two operands.
							 | 
						||
| 
								 | 
							
								 3. The `*` operator *multiplies* the two operands.
							 | 
						||
| 
								 | 
							
								 4. The `/` operator *divides* and gives the *quotient* of the two operands.
							 | 
						||
| 
								 | 
							
								 5. The `%` operator *divides* and gives the *remainder* of the two operands. (Or, for the more mathematically inclined reader, `a % b` is essentially the result of "a mod b"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 ### Example of using arithmetic operators :
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 ```cpp
							 | 
						||
| 
								 | 
							
								#include <iostream>
							 | 
						||
| 
								 | 
							
								using namespace std;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int main()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								        int a = 5; //1st operand
							 | 
						||
| 
								 | 
							
								        int b = 10; //2nd operand
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        cout << "+ operator " << a+b << "\n"; //Add
							 | 
						||
| 
								 | 
							
								        cout << "- operator " << a-b << "\n"; //Subtract
							 | 
						||
| 
								 | 
							
								        cout << "* operator " << a*b << "\n"; //Multiply
							 | 
						||
| 
								 | 
							
								        cout << "/ operator " << b/a << "\n"; //Find Quotient
							 | 
						||
| 
								 | 
							
								        cout << "modulus operator " << b%a << "\n"; //Find remainder
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        return 0; 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								 ```
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 OUTPUT :
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								+ operator 15
							 | 
						||
| 
								 | 
							
								- operator -5
							 | 
						||
| 
								 | 
							
								* operator 50
							 | 
						||
| 
								 | 
							
								/ operator 2
							 | 
						||
| 
								 | 
							
								modulus operator 0
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<a href='https://repl.it/Mge9' target='_blank' rel='nofollow'>Try the code yourself ! :) </a>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### The increment operator :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* `++` is known as the increment operator. It increases the value of an integer variable by 1.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The 2 types of increment : 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Pre increment first increments the value and then uses it. Example : `int a ; ++a;`
							 | 
						||
| 
								 | 
							
								* Post increment first uses the variable then increments it. Example : `int b; b++;`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### The decrement operator :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* `--` is known as the decrement operator. It decreases the value of an integer variable by 1.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The 2 types of decrement : 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Pre decrement first decrements the value and then uses it. Example : `int a ; --a;`
							 | 
						||
| 
								 | 
							
								* Post decrement first uses the variable then decrements it. Example : `int b; b--;`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Example of Increment and decrement operators :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```cpp
							 | 
						||
| 
								 | 
							
								#include <iostream>
							 | 
						||
| 
								 | 
							
								using namespace std;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int main()
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								        int a = 3 ,b = 4;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								         // INCREMENT
							 | 
						||
| 
								 | 
							
								        cout<< "Value of int a PRE INCREMENTED : " << ++a << "\n";
							 | 
						||
| 
								 | 
							
								        cout<< "Value of int b POST INCREMENTED : " << b++ << "\n";
							 | 
						||
| 
								 | 
							
								        cout<< "Value of b is changed after using once : " << b << "\n";
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								         // DECREMENT
							 | 
						||
| 
								 | 
							
								        cout << "\n"; //go to next line 
							 | 
						||
| 
								 | 
							
								        a = 10; //Assigning a new value to a
							 | 
						||
| 
								 | 
							
								        b = 10; //Assigning a new value to b
							 | 
						||
| 
								 | 
							
								        cout << "Value of int a PRE DECREMENTED : " << --a << "\n";
							 | 
						||
| 
								 | 
							
								        cout << "Value of int b POST DECREMENTED : " << b-- << "\n";
							 | 
						||
| 
								 | 
							
								        cout << "Value of b is changed after using once : " << b << "\n";
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        return 0;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								OUTPUT :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								Value of int a PRE INCREMENTED : 4
							 | 
						||
| 
								 | 
							
								Value of int b POST INCREMENTED : 4
							 | 
						||
| 
								 | 
							
								Value of b is changed after using once : 5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Value of int a PRE DECREMENTED : 9
							 | 
						||
| 
								 | 
							
								Value of int b POST DECREMENTED : 10
							 | 
						||
| 
								 | 
							
								Value of b is changed after using once : 9
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<a href='https://repl.it/Mgg4/2' target='_blank' rel='nofollow'>Try the code yourself ! :) </a>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 3 : Relational Operators :
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* These operators tell us the relation among 2 operands and return a boolean value(0 or 1). If the relation is `true` then it results into 1 . If the realtion is false then it results into 0.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* The 6 relational operators are :
							 | 
						||
| 
								 | 
							
								    1. Less than `<`
							 | 
						||
| 
								 | 
							
								    2. Greater than `>`
							 | 
						||
| 
								 | 
							
								    3. Less than or equal to `<=`
							 | 
						||
| 
								 | 
							
								    4. Greater than or equal to `>=`
							 | 
						||
| 
								 | 
							
								    5. Equal to `==`
							 | 
						||
| 
								 | 
							
								    6. Not equal to `!=`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 4 : Logical Operators : 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* These operators combine expressions for logical operations . They are :
							 | 
						||
| 
								 | 
							
								 1. Logical AND `&&` : Evaluates to true if both values are true .
							 | 
						||
| 
								 | 
							
								 2. Logical OR `||`  : Evaluates to true if any value is true .
							 | 
						||
| 
								 | 
							
								 3. Logical NOT `!`  : If *expression* is true then *!expression* is false. This operator reverses the truth value and is a unary operator.
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 ### 5. Ternary Operators : 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 The `?:` operator is the ternary operator, or the _conditional operator_, becuase it can be used to substitute an `if else` statement, or even an `if else if` statement.
							 | 
						||
| 
								 | 
							
								The syntax: 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`condition ? ValueIfTrue : ValueIfFalse `. This expands to:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```cpp
							 | 
						||
| 
								 | 
							
								if(condition)
							 | 
						||
| 
								 | 
							
								 ValueIfTrue;
							 | 
						||
| 
								 | 
							
								else ValueIfFalse;
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Calling `ValueIfTrue` a value is a bit wrong, since it need not be a number. Something like this:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`condition ? FirstLevelTrueValue : ConditionIfFalse ? SecondLevelTrueValue : SecondLevelFalseValue ` also works, and is interpreted as the following `if else if` statement:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```cpp
							 | 
						||
| 
								 | 
							
								if(condition)
							 | 
						||
| 
								 | 
							
								 FirstLevelTrueValue;
							 | 
						||
| 
								 | 
							
								else if(ConditionIfFalse)
							 | 
						||
| 
								 | 
							
								 SecondLevelTrueValue;
							 | 
						||
| 
								 | 
							
								else SecondLevelFalseValue;
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								Similarly, nested `if` statements can also be made using ternary operators.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								_Camper , You now know what tokens are. The next article will be about <need-to-put-topic> CONGRATULATIONS_ 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 **Good Luck to all of you** 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 **Happy Coding ! :)**
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 **Feel free to ask any queries on FreeCodeCamp's GitHub page or <a href='https://forum.freecodecamp.org/' target='_blank' rel='nofollow'>FreeCodeCamp's Forum .</a>**
							 | 
						||
| 
								 | 
							
								
							 |