Cómo implementar el operador ternario en C++ sin usar declaraciones condicionales.
En la siguiente condición: a ? b: c
Si a es verdadero, b será ejecutado.
De lo contrario, se ejecutará c.
Podemos asumir a, b y c como valores.
1. Usando el Operador Binario
Podemos codificar la ecuación como:
Resultado = (!!a)*b + (!a)*c
En la ecuación anterior, si a es verdadera, el resultado será b.
De lo contrario, el resultado será c.
C++
// 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; }
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
<?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. ?>
Javascript
<script> // Javascript 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 let a = 1, b = 10, c = 20; // Function call to output b or c depending on a document.write( ternaryOperator(a, b, c)+"<br>"); a = 0; // Function call to output b or c depending on a document.write( ternaryOperator(a, b, c)+"<br>"); // This code is contributed by avanitrachhadiya2155 </script>
10 20
2. Usando array
int arr[] = { b, a };
Podemos devolver el valor presente en el índice 0 o 1 dependiendo del valor de a.
- Para a= 1, la expresión arr[a] se reduce a arr[1] = b.
- Para a= 0, la expresión arr[a] se reduce a arr[0] = c.
C
#include <stdio.h> 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 <iostream> 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<<ternary(0, a, b)<<endl; cout<<ternary(1, a, b)<<endl; return 0; }
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))
20 10
Preguntado en: Nvidia
Este artículo es una contribución de Rohit Thapliyal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA