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.

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

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP code to implement ternary operator
#include <bits/stdc++.h>
  
// 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;
}

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP code to implement 
// ternary operator
  
// Function to implement 
// ternary operator without 
// conditional statements
function 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 ((!!$a) * $b + (!$a) * $c);
}
  
    // Driver code
    $a = 1;
    $b = 10;
    $c = 20;
      
    // Function call to output
    // b or c depending on a
    echo ternaryOperator($a, $b, $c) ,"\n";
  
    $a = 0;
      
    // Function call to output b 
    // or c depending on a
    echo ternaryOperator($a, $b, $c);
      
// This code is contributed by jit_t.
?>

chevron_right



Output:

10
20

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 contribute@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

Improved By : jit_t, Ita_c