Operador ternario en C explicado

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:

  1. El primero es un argumento de comparación
  2. El segundo es el resultado de una verdadera comparación.
  3. 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_truesi conditionse cumple y de lo value_if_falsecontrario.

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

cse establece igual a a, porque la condición a < bera verdadera.

Recuerde que los argumentos value_if_truey value_if_falsedeben 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