Hace algunos dias le explicaba a uno amigos sobre como funcionaba el operador ternario «?» en una instrucción java de una sola línea, curiosamente lo vieron en una parte de código que había utilizado y les llamo la atención, por lo que mas o menos vi se les hizo un poco complejo de entender, recuerdo que la primera ocasión que tuve la oportunidad de ver como funcionaba fue en una ocasión cuando @Mxrck me ayudaba con un trabajo de la escuela, jajaja! desde eso cada vez que tengo la oportunidad de utilizarlo lo utilizo, aparte de ser sumamente funcional, ahorra codigo y definitivamente se ve elegante. En fin, hoy les explicare como funciona el operador ternario para manejar condiciones de una sola linea.
Primero que nada, el operador ternario, nos sirve para asignar un valor a una variable dependiendo del resultado de la comprobación de una u otra cosa, es como que hagamos un If corto para asignarle a un booleano verdadero o falso dependiendo del resultado de un entero, algo sencillo, por ejemplo:
int n = 0; boolean result; if (n==0) { result = true; }else{ result = false; } System.out.println("El resultado es: "+result);
Este es un ejemplo sencillo del como utilizariamos comunmente el IF, declaramos (como ejemplo) una variable de prueba que representara un entero (metodo echo para fines didacticos) y un booleano donde se almacenara el resultado, en este caso, IF(SI) n es igual a cero, entonces asignaremos true a result, si no, asignaremos false, bueno, esto es algo sencillo de aplicar con un operador ternario, para esto debemos de tener en cuenta, que el operador ternario «?» dara la pauta para saber que ese punto, sera el final de la condición, posteriormente introduciremos lo que se hará si el resultado es verdadero, un «:» para hacer el espacio de que sucedera si es falso, y finalmente lo que se hará, esto de esta manera puede sonar algo ambiguo, pero veran que es muy fácil de hacer, el codigo anterior quedaria de la siguiente manera:
int n=0; boolean result = n==0 ? true : false; System.out.println("El resultado es: "+result);
Como podran observar, se ve algo confuso, pero es muy fácil de entender, para esto veremos como se va formando la sentencia paso a paso:
int n = 0; //Declaramos la variable //Declaramos el booleano, que sera igual a : boolean result = //Asignamos una condicion, que es lo que generalmente se encuentra dentro de los parentesis del IF (n==0): boolean result = n==0 //Damos terminada la condicion con el operador ternario "?" boolean result = n==0 ? //Introducimos el valor que se le asignara a result si n==0 es verdadero: boolean result = n==0 ? true // Agregamos un SINO ( ":") boolean result = n==0 ? true : //Por ultimo el valor que tomara result si el resultado es falso boolean result = n==0 ? true : false;
Y listo, podremos observar como se fue formando nuestra sentencia IF con un operador ternario, la verdad es muy sencillo de utilizar, por ultimo dejare un ejemplo un poco mas practico (pero igual de sencillo) para que vean de nuevo como funciona por si tienen alguna duda:
CODIGO SIN OPERADOR TERNARIO
Scanner scan = new Scanner(System.in); System.out.println("Inserta tu edad: "); int age = scan.nextInt(); String message; if (age >= 18) { message = "Eres mayor de edad"; }else{ message = "Eres menor de edad"; } System.out.println(message);
CODIGO CON OPERADOR TERNARIO
Scanner scan = new Scanner(System.in); System.out.println("Inserta tu edad: "); int age = scan.nextInt(); String message = age >= 18 ? "Eres mayor de edad" : "Eres menor de edad"; System.out.println(message);
Como pueden ver es muy sencillo, espero les sea de ayuda, si tienen alguna duda aca estamos ya saben. Saludos.