viernes, 16 de diciembre de 2011

El Operador ?

Uno de los operadores más fascinantes en C# es el operador ?, el cual es un operador condicional.  Es usado para sustituir ciertos tipos de sentencias if-then-else.  El operador ? es llamado operador terciario porque requiere tres operandos.  Este toma la forma general:

Exp1 ? Exp2 : Exp3;

donde Exp1 es una expresión del tipo bool y Exp2 y Exp3 son expresiones normales.  El tipo de Exp2 y Exp3 deben ser el mismo.  Las expresiones 2 y 3 están separadas por dos puntos. El valor de una expresión ? es evaluada así: Exp1 es evaluada, si es verdadera, entonces la Exp2 es evaluada y llega a ser el valor de toda la expresión ?.  Si Exp1 es falsa, entonces se evalúa la Exp2 y su valor obtenido llega a ser el valor de toda la expresión ?.

Consideremos el ejemplo siguiente el cual asigna a la variable absval el valor absoluto de la variable val:

absval = val < 0 ? –val : val;  // obtner el valor absoluto de la variable val

aquí a la variable absval le será asignado el valor de val si val es cero o mayor que cero.  Si val es negativo, entonces a absval se le asigna el valor negativo de val (el cual llega a ser un valor positivo).

Por ejemplo, veamos algo clásico para los estudiantes.  Supongamos que queremos asignar a una variable de cadena el valor APROBADO o REPROBADO si un alumno ha obtenido una calificación adecuada en un exámen.  Asumiendo que la nota para aprobar es 70.

int nota = 89;
String condicion = nota >= 70 ? "APROBADO" : "REPROBADO";

No hay comentarios:

Publicar un comentario