13 de junio de 2016

El operador ternario ? :

   El lenguaje de programación C incorpora un operador muy versátil y sumamente útil para escribir expresiones condicionales compactas: el operador ternario (? :).

   El operador ternario tiene la siguiente estructura general:

          valor = expresión1 ? expresión2 : expresión3

donde la expresión1 es evaluada primero, y si es distinta de cero (expresión1 != 0), entonces se evalúa la expresión2 y su resultado es asignado a valor; en caso contrario, se evalúa la expresión3 y su resultado es asignado a valor.

   Note que el operador ternario es una estructura de selección if-else compacta. En este sentido, es importante señalar que el operador ternario tiene su correspondiente equivalencia representada en dicha estructura de selección. Asegúrese de comprender la equivalencia:

                    if (expresión1)
                        valor = expresión2;
                    else
                        valor = expresión3;

   La principal ventaja del operador ternario radica en lo compacto y la expresividad, pero en general es posible representar en una estructura de selección if-else cualquier expresión que haya sido escrita utilizando dicho operador.

   Considere el Ejemplo 3.6, el cual determina el mayor de dos números enteros. La línea 12 y 13 pudieron haber sido escritas en una sola, es decir, el valor retornado por el operador ternario “? :” pudo haber sido utilizado directamente como el valor a imprimir por el especificador de formato “%d” de la función printf de la línea 13. Se propone como ejercicio realizar dicha modificación y comprobar su equivalencia.

   Una posible salida para el Ejemplo 3.6 se muestra en la siguiente figura.

Una posible salida para el Ejemplo 3.6.