Operador Ternario
Enviado por aeternus_isaac • 18 de Mayo de 2012 • 688 Palabras (3 Páginas) • 387 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)
...