Condiciones simplificadas: Java

Este tipo de condición únicamente tiene sentido cuando pretendemos elegir entre dos valores, bien para asignarlo a una variable, usarlo como parámetro, etc.

Puedes copiar este código y pegarlo en un archivo que se llame A2_CondicionSimplificada.java dentro del paquete B_ControlDeFLujo para comprobar su funcionamiento.

/* 
* Aprendiendo a programar en DAM con elProfesorEmilio 
* elProfesorEmilio@gmail.com
 */
package B_ControlDeFlujo;

/**
 *
 * @author elProfesorEmilio
 */
public class A2_CondicionSimplificada {

    public static void main(String[] args) {
        // Hay veces que nosotros usamos condiciones para decidir
        // si asignamos a una variable un valor u otro
        // En este caso tenemos un tipo de condición que es más
        // compacto, se tiene que escribir menos
        
        // Permiso 0 es administrador, 1 gestor, 2 editor, resto usuario
        int permiso = 3; 
        
        String mensajeEdicion;
        if (permiso>=0 && permiso<=2) {
            mensajeEdicion = "SI";
        } else {
            mensajeEdicion = "NO";
        }
        System.out.println(mensajeEdicion);
        
        // Se define el valor que se va a asignar en función
        // de la veracidad o no de una condición. El formato es 
        // variable = (condicion)?valorSiTrue:valorSiFalse;
        mensajeEdicion = (permiso>=0 && permiso<=2)?"SI":"NO";
        System.out.println(mensajeEdicion);
                
        // Para valores booleanos no merece la pena
        int edad = 17; 
        boolean tieneDni=true;
        // Lo siguiente no tiene sentido, porque la propia condición
        // ya da el valor booleano
        boolean puedePasar = (edad>=18&&tieneDni)?true:false;
        // Sería mejor así
        puedePasar = (edad>=18&&tieneDni);
        System.out.println("Puede pasar: "+puedePasar);
        // Sin embargo para valores numéricos puede tener sentido
        // Trata de pensar una situación en la que venga bien utilizar
        // esta condición simplificada con valores numéricos
    }
}