Java solamente cuenta con un operador ternario, el operador condicional ?:, que algunas veces se lo utiliza en lugar de una intrucción if else.
"En conjunto, los operandos y ?: forman una expresión condicional."
Sintaxis
operando1 ? operando2 : operando3
El primer operando es una expresión booleana que indica la condición a analizar, el operador2 es el valor de la expresión condicional si la expresión booleana es verdadera y el operador3 es el valor de la expresión condicional si la expresión es falsa.
Ejemplos
En primer lugar presentaré un ejemplo sencillo de uso de este operador y a continuación un ejemplo más largo, no así complejo, del mismo.
El primer ejemplo comprueba la calificación de un alumno y asigna a una variable cadena si aprueba o no el estudiante.
String promocion;
promocion = nota >=60 ? "Aprobado" : "Reprobado";
String.out.println("Promoción: " + promocion);
El segundo ejemplo muestra un método getConceptFilterCriteria que devuelve un AdvancedCriteria (programación con smartGWT). El método sirve para filtrar una lista de acuerdo a dos grupos de criterios, de 6 y 3 cada uno; sin el uso del operador condicional, hubiera tenido que programar las 512 posibilidades de filtrado, pero la tarea se hace mucho más fácil utilizando el operador mencionado.
private AdvancedCriteria getConceptFilterCriteria(){
AdvancedCriteria criteria = new AdvancedCriteria(OperatorId.AND, new AdvancedCriteria[] {
new AdvancedCriteria(OperatorId.OR, new AdvancedCriteria[] {
(inuseIsChecked ? new AdvancedCriteria("conceptFlag", OperatorId.EQUALS , "In Use"): new AdvancedCriteria("conceptFlag",OperatorId.EQUALS)),
(isnewChecked ? new AdvancedCriteria("conceptFlag", OperatorId.EQUALS , "New"): new AdvancedCriteria("conceptFlag",OperatorId.EQUALS)),
(isChangedChecked ? new AdvancedCriteria("conceptFlag", OperatorId.EQUALS , "Changed"): new AdvancedCriteria("conceptFlag",OperatorId.EQUALS))
}),
new AdvancedCriteria(OperatorId.OR, new AdvancedCriteria[] {
(isNotTranslatedChecked ? new AdvancedCriteria("status", OperatorId.EQUALS , "Not translated"): new AdvancedCriteria("status",OperatorId.EQUALS)),
(isForTranslationChecked ? new AdvancedCriteria("status", OperatorId.EQUALS , "For translation"): new AdvancedCriteria("status",OperatorId.EQUALS)),
(isAutoTranslatedChecked ? new AdvancedCriteria("status", OperatorId.EQUALS , "Auto translated"): new AdvancedCriteria("status",OperatorId.EQUALS)),
(isTranslatedChecked ? new AdvancedCriteria("status", OperatorId.EQUALS , "Translated"): new AdvancedCriteria("status",OperatorId.EQUALS)),
(isForReviewChecked ? new AdvancedCriteria("status", OperatorId.EQUALS , "For review"): new AdvancedCriteria("status",OperatorId.EQUALS)),
(isCompleteChecked ? new AdvancedCriteria("status", OperatorId.EQUALS , "Complete"): new AdvancedCriteria("status",OperatorId.EQUALS))
})
});
return criteria;
}
Fuente
- Deitel. "Cómo programar en Java". 5ta edición
Si le gustó esta entrada, ¡podría invítame a un café!
0 comentarios:
Publicar un comentario