Los programadores utilizan el operador ternario para la toma de decisiones en lugar de declaraciones condicionales if y else más largas .
El operador ternario toma tres argumentos:
- El primero es un argumento de comparación
- El segundo es el resultado de una verdadera comparación.
- El tercero es el resultado de una comparación falsa
Es útil pensar en el operador ternario como una forma abreviada de escribir una declaración if-else. Aquí hay un ejemplo simple de toma de decisiones usando if y else :
int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);
Este ejemplo ocupa más de 10 líneas, pero no es necesario. Puede escribir el programa anterior en solo 3 líneas de código usando un operador ternario.
Sintaxis
condition ? value_if_true : value_if_false
La declaración evalúa value_if_true
si condition
se cumple y de lo value_if_false
contrario.
Aquí está el ejemplo anterior reescrito para usar el operador ternario:
int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);
La salida del ejemplo anterior debería ser:
10
c
se establece igual a a
, porque la condición a < b
era verdadera.
Recuerde que los argumentos value_if_true
y value_if_false
deben ser del mismo tipo y deben ser expresiones simples en lugar de declaraciones completas.
Los operadores ternarios se pueden anidar como si fueran declaraciones if-else. Considere el siguiente código:
int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);
Aquí está el código anterior reescrito usando un operador ternario anidado:
int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);
La salida de ambos conjuntos de código anteriores debería ser:
3