Los programadores utilizan el operador ternario para la toma de decisiones en lugar de sentencias 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 comparación verdadera
- El tercero es el resultado de una comparación falsa
ayuda a pensar en el operador ternario como una forma abreviada o escribir una declaración if-else., Este es 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 toma más de 10 líneas, pero eso 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 instrucción se evalúa a value_if_true
si condition
se cumple, y value_if_false
en caso contrario.,
Aquí está el ejemplo anterior se reescribe para utilizar el operador ternario:
int a = 10, b = 20, c;c = (a < b) ? a : b;printf("%d", c);
la Salida del ejemplo anterior será:
10
c
es igual a a
, debido a la condición de a < b
era cierto.
recuerde que los argumentos value_if_true
y value_if_false
deben ser del mismo tipo, y deben ser expresiones simples en lugar de instrucciones completas.
los operadores ternarios pueden anidarse al igual que las sentencias 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 anterior debe ser: