 GFG App
Open App Browser
Continue

# Implementing ternary operator without any conditional statement

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```