Skip to content

Curiosidades Java: Operador Condicional

24 marzo 2009

El operador condicional, al contrario que la mayoría de operadores, es un operador ternario, lo que significa que está compuesto por tres operandos. Lo habitual es que los operadores tengan sólo dos operandos, aunque esta situación no es tan extraña.

Se utiliza para decidir qué valor asignaremos a una variable entre varios posibles, basándonos en una condición booleana. Es similar a una sentencia if sólo que en esta ocasión no ejecutaremos un bloque de código si la condición es verdadera, si no que asignaremos un valor a la variable.

El formato del operador es el siguiente:

x = (boolean expression)  ? value to assign if true : value to assign if false

Por tanto, construimos el operador, usando un símbolo de interrogación cerrado (?) y dos puntos (:). Los paréntesis en la expresión booleana son opcionales.

Veamos un ejemplo simple:

class Mascota {
  public static void main(String [] args) {
    int prioridad = 4;
    String pref = (prioridad < 6) ? "Perro"
                    : "Gato";
    System.out.println("Prefiero un " + pref);
  }
}

Podemos leer el código anterior como:

Ponemos prioridad a 4. Después vamos a asignar un String a la variable pref. Si la prioridad es menor que 6, asignaremos a pref el objeto String “Perro” y si es mayor asignaremos el objeto String “Gato”.

Como vemos un operador condicional, comienza siempre con una expresión booleana que será evaluada a true o false, seguida de dos posibles valores para la variable situada a la izquierda de la asignación (=). Asignamos el primer valor, el que está a la izquierda de los : siempre que la condición sea verdadera y asignaremos el segundo valor, el que está a la derecha de los dos puntos (:) si la condición es falsa.

Una gran ventana de este operador, es que podemos anidar varios operadores condicionales en una misma sentencia, por ejemplo:

class Estadio {
  private final int aforo = 20000;
  public static void main(String [] args) {
    int publico = 19500;
    int vendidas = 19000;
    String status = (publico < aforo) ? "Cabe mas gente"
                    : (vendidas < aforo) ? "Aun no hemos vendido todo"
                       : "Esta todo vendido";
    System.out.println("La situación es: " + status);
  }
}

Si, lo sé, el ejemplo es un poco sin sentido, pero bueno, sirve para explicar cómo funciona el operador condicional.

NOTA: Recordad, que en Java, una expresión booleana, es una expresión que se evalúa a true o false. En lenguajes como C o C++, el 1 y el 0, pueden interpretarse como valores booleanos. En Java NO!, recordad Java no es C++.

Anuncios
4 comentarios leave one →
  1. Mario permalink
    12 noviembre 2010 18:45

    Gracias men!!

  2. Carlos permalink
    7 febrero 2013 05:29

    Grax men xq con eso entendi mas sobre ese operador con el segundo ejemplo y no es sin sentido sino como usarlo en forma boolean no como c++ se agradece el aporte espero ver mas saludos!!!

  3. javier permalink
    19 julio 2013 19:00

    y para una condicional anidada , como es la secuencia?

  4. wrosales permalink
    3 julio 2017 23:35

    Gracias me sirvio de mucho

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: