El concepto de Java ternary operator siempre ha sido un concepto poco usado en el mundo Java . Pero que siempre que se usa genera problemas ya que casi nadie conoce el operador o lo utiliza en el día a día. ¿Para que sirve este operador? . Vamos a verlo:
Java Ternary Operator
Normalmente este operador substituye a una estructura if /else es decir podemos tener un programa tan sencillo como el que valora si un alumno ha aprobado un examen o lo ha suspendido.
package com.arquitecturajava; public class Principal { public static void main(String[] args) { int nota=7; if (nota>5) { System.out.println("has aprobado"); }else { System.out.println("has suspendido"); } } }
El resultado en este caso es obvio :
has aprobado
Sin embargo se trata de mucho código para una operativa tan simple . Para ello se define el Java Ternary Operator que permite resolver una sentencia if/else de una forma mucho más directa en una única linea.
package com.arquitecturajava; public class Principal2 { public static void main(String[] args) { int nota = 7; System.out.println((nota > 5 ? "has aprobado" : "has suspendido")); } }
El resultado es idéntico pero hemos compactado el código . Este operador dispone de el signo ? para separar lo que es la “condición” de las posibles respuestas if /else (confirmar/rechazar) que se encuentran separadas con el operador “:” .
Este tipo de sintaxis es muy útil cuando estamos tratando de formetear contenido . Uno de los casos más habituales es el caso de los plurales es decir imaginemos que tenemos un número de alumnos aprobados . Nuestro programa podría ser del siguiente estilo:
public class Principal3 { public static void main(String[] args) { int aprobados=1; if (aprobados==1) { System.out.println("ha aprobado " +aprobados+" un alumno"); }else { System.out.println("han aprobado " +aprobados+" alumnos"); } } }
El resultado si el valor es un solo alumno aprobado es:
ha aprobado 1 un alumno
En el caso de varios alumnos es:
han aprobado 3 alumnos
Nos podemos dar cuenta que simplemente para cambiar los plurales es mucho ,mucho código. El Java Ternary Operator nos puede ayudar en este caso a simplificar:
package com.arquitecturajava; public class Principal4 { public static void main(String[] args) { int aprobados = 3; System.out.println((aprobados == 1 ? "ha" : "han") +" aprobado " + aprobados+ (aprobados == 1 ? " un alumno" : " alumnos")); } }
El resultado es idéntico:
Conclusiones
Acostumbremonos a utilizar este operador ya que en temas de formato nos aportará simplicidad.
Lo mejor del artículo: Los ejemplos. Realmente ha ayudado a entender la potencia de este operador
me alegro 🙂