| 
									
										
										
										
											2018-10-04 14:47:55 +01:00
										 |  |  | --- | 
					
						
							|  |  |  | title: Conditional Operator | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Conditional Operator
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-12 04:30:38 +05:30
										 |  |  | Conditional operator is a ternary operator, that is it needs 3 operands. | 
					
						
							|  |  |  | It returns one of two values depending on the result of an expression | 
					
						
							| 
									
										
										
										
											2018-10-04 14:47:55 +01:00
										 |  |  | Conditional operator is used to replace a simple if-else statements. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Syntax : | 
					
						
							|  |  |  | ```cpp | 
					
						
							|  |  |  |   (condition)?(expression-1):(expression-2); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | Here, expression-1 is evaluated when condition is true and expression-2 is evaluated when condtion is false. | 
					
						
							|  |  |  | Similar if-else statement would be : | 
					
						
							|  |  |  | ```cpp | 
					
						
							|  |  |  | if(condition) | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     expression-1; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     expression-2; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2018-10-16 02:03:24 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | The above code however can be used to check more than just two conditions in the following way/syntax: | 
					
						
							|  |  |  | ```cpp | 
					
						
							|  |  |  | if(condition 1)    /* Checks first condition, skips else-if and else | 
					
						
							|  |  |  |   {                   entirely if condition 1 checks out */           | 
					
						
							|  |  |  |     expression-1; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | else if(condition 2) /*Checks condition 2, only and only if condition 1 | 
					
						
							|  |  |  |   {                    is false, if condition 2 is true the comiler will  | 
					
						
							|  |  |  |     expression-2;      skip the 'else' part and move on */ | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | else                /*Once if and else-if conditions don't satisfy the   | 
					
						
							|  |  |  |   {                   compiler will run the expression in else{..}    | 
					
						
							|  |  |  |     expression-3;     because it does not have a condition to check,  | 
					
						
							|  |  |  |   }                   part of code can also be skipped if not necessary*/   | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-04 14:47:55 +01:00
										 |  |  | Hence conditional operator is very handy when you need to write simple if-else statement. It can also be used in #define  | 
					
						
							|  |  |  | preprocessor when similar condition is to be used in multiple places. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For example, to find maximum of two number conditional operator can be used as follows : | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```cpp | 
					
						
							|  |  |  | #define big(a,b) (a>=b)?a:b
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int maximum,x=5,y=6; // variable to store maximum of two numbers | 
					
						
							|  |  |  | maximum=(x>y)?x:y; // directly using conditional operator | 
					
						
							|  |  |  | maximum=big(x,y); // using the #define preprocessor defined above as big | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  |  **Good Luck to all of you**  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  **Happy Coding ! :)** | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  **Feel free to ask any queries on FreeCodeCamp's GitHub page or [FreeCodeCamp's Forum .](https://forum.freecodecamp.org/)** |