# Implementing ternary operator without any conditional statement

• Difficulty Level : Medium
• Last Updated : 16 Jun, 2022

How to implement ternary operator in C++ without using conditional statements.
In the following condition: a ? b: c
If a is true, b will be executed.
Otherwise, c will be executed.
We can assume a, b and c as values.

1. Using Binary Operator

We can code the equation as :
Result = (!!a)*b + (!a)*c
In above equation, if a is true, the result will be b.
Otherwise, the result will be c.

## C++

 `// CPP code to implement ternary operator``#include ` `// Function to implement ternary operator without``// conditional statements``int` `ternaryOperator(``int` `a, ``int` `b, ``int` `c)``{``    ``// If a is true, we return (1 * b) + (!1 * c) i.e. b``    ``// If a is false, we return (!1 * b) + (1 * c) i.e. c``    ``return` `((!!a) * b + (!a) * c);``}` `// Driver code``int` `main()``{``    ``int` `a = 1, b = 10, c = 20;``    ` `    ``// Function call to output b or c depending on a``    ``std::cout << ternaryOperator(a, b, c) << ``'\n'``;` `    ``a = 0;``    ` `    ``// Function call to output b or c depending on a``    ``std::cout << ternaryOperator(a, b, c);``    ` `    ``return` `0;``}`

## Python 3

 `# Python 3 code to implement ternary operator` `# Function to implement ternary operator``# without conditional statements``def` `ternaryOperator( a, b, c):``    ` `    ``# If a is true, we return``    ``# (1 * b) + (!1 * c) i.e. b``    ``# If a is false, we return``    ``# (!1 * b) + (1 * c) i.e. c``    ``return` `((``not` `not` `a) ``*` `b ``+` `(``not` `a) ``*` `c)` `# Driver code``if` `__name__ ``=``=` `"__main__"``:` `    ``a ``=` `1``    ``b ``=` `10``    ``c ``=` `20``    ` `    ``# Function call to output b or c``    ``# depending on a``    ``print``(ternaryOperator(a, b, c))` `    ``a ``=` `0``    ` `    ``# Function call to output b or c``    ``# depending on a``    ``print``(ternaryOperator(a, b, c))``    ` `# This code is contributed by ita_c`

## PHP

 ``

## Javascript

 ``

Output

```10
20```

2. Using Array

`int arr[] = { b, a };`

We can return the value present at index 0 or 1 depending upon the value of a.

• For a= 1, the expression arr[a] reduces to arr = b.
• For a= 0, the expression arr[a] reduces to arr = c.

## C

 `#include `` ` `int` `ternary(``int` `a, ``int` `b, ``int` `c)``{``    ``int` `arr[] = { c, b };``    ``return` `arr[a];``}`` ` `int` `main(``void``)``{``    ``int` `a = 10, b = 20;``    ``printf` `(``"%d\n"``, ternary(0, a, b));``    ``printf` `(``"%d\n"``, ternary(1, a, b));``    ``return` `0;``}`

## C++

 `#include ``using` `namespace` `std;` `int` `ternary(``int` `a, ``int` `b, ``int` `c)``{``    ``int` `arr[] = { c, b };``    ``return` `arr[a];``}`` ` `int` `main(``void``)``{``    ``int` `a = 10, b = 20;``    ``cout<

## Python3

 `def` `ternaryOperator( a, b, c):``  ``arr ``=` `[ c, b ]``  ``return` `arr[a]``  ` `# Driver code``if` `__name__ ``=``=` `"__main__"``:``  ``a ``=` `1``  ``b ``=` `10``  ``c ``=` `20``  ``print``(ternaryOperator(a, b, c))``  ``a ``=` `0``  ``print``(ternaryOperator(a, b, c))`

Output

```20
10```

Asked In : Nvidia
This article is contributed by Rohit Thapliyal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes arrow_drop_up