Operador Ternario
aeternus_isaac18 de Mayo de 2012
688 Palabras (3 Páginas)409 Visitas
Operador Ternario
En informática un operador ternario (a veces incorrectamente llamado operador terciario) es un operador que toma tres argumentos. Los argumentos y el resultado puede ser de diferentes tipos. Originalmente proviene de BCPL, cuyo sintaxis equivalente para e1 ? e2: e3 era e1 -> e2, e3. Idiomas derivado de BCPL tienden a aparecer con este operador.
Muchos lenguajes de programación que utilizan la sintaxis del lenguage C utilizan un operador ternario,?:, que define una sentencia condicional. Dado que este operador es a menudo el único operador ternario existente en el lenguage de programación, a veces es referido simplemente como "el operador ternario".
La mayoría de los lenguajes de programación que se enfatizan en la programación funcional no necesitan dicho operador como su expresión regular condicional (s) es una expresión en primer lugar, por ejemplo, la expresión sistema (si (ab>) ab) es equivalente en la semántica de la expresión C (a> b)? a: b.
Este es también el caso en muchos lenguajes imperativos, empezando con ALGOL en el que sería posible escribir resultado := if a > b then a else b, también Smalltalk (resultado := (a > b) ifTrue: [ a ] ifFalse: [ b ]) o Ruby (resultado = if a > b: a else b end).
Asignación condicional
La sintaxis del operador ternario (?:) se utiliza como sigue:
Expresión boleana ? valor si cierto : valor si falso
La condición es evaluada verdadera o falsa como una expresión booleana. Sobre la base de la evaluación de la condición de Booleana, la expresión entera devuelve valor si cierto si la condición es verdadera, pero valor si falso en caso de lo contrario. Por lo general, las dos sub-expresiones valor si cierto y valor si falso deben tener el mismo tipo, lo cual determina el tipo de toda la expresión. La importancia de este tipo de control se encuentra en el uso más común del operador --en declaraciones de asignación condicional. En este uso aparece como una expresión en el lado derecho de una sentencia de asignación, de la siguiente manera:
variable = condición ? valor si cierto : valor si falso
El operador ?: es similar a la manera como funcionan las expresiones condicionales (if-then-else) en lenguajes de programación funcional, como Scheme, ML y Haskell, puesto que if-then-else forma una expresión en lugar de una declaración en esos idiomas.
Uso
El uso más común de este operador ternario es hacer una breve sentencia condicional. Por ejemplo, si queremos desarrollar código en C para cambiar las horas de apertura de una tienda a 12:00 del medio dia los fines de semana y 9 en punto entre semana, podemos usar:
int tiempo_de_apertura = (día == FIN_DE_SEMANA) ? 12 : 9;
en lugar del codigo más detallado
int tiempo_de_apertura;
if (día == FIN_DE_SEMANA)
tiempo_de_apertura = 12;
else
tiempo_de_apertura = 9;
Las dos formas son casi equivalentes. Tenga en cuenta que el ?: es una expresión y if-then-else una declaración. Tambien hay que tomar en cuenta que ni el valor si es verdaderoni valor si falso pueden ser omitidos en el operador ternario, lo cual resultaría en un error por el compilador. Esto contrasta con sentencias de if..else, donde se puede omitir la cláusula else.
Java, JSP
En Java el operador ternario es también referido como el operador condiconal y utiliza la misma sintaxis que los demás lenguajes basados en el lenguage C. Por ejemplo, para verifcar que una persona es mayor de edad, utilizariamos lo siguiente:
boolean mayor_de_edad = edad > 18 ? true: false;
Remplazaria el siguiente código detallado:
boolean mayor_de_edad;
if(edad > 18){
mayor_de_edad = true;
...