Setencias de Decisión en Java (if-then, if-then-else)

Author
Por Darío Rivera
Publicado el en Java

Las sentencias de control de flujo nos permiten ejecutar bloques específicos de código basados en una decisión. Recordemos que el flujo general de un programa es de arriba hacia abajo, es decir, se ejecuta desde la primera línea hasta la última. En este post, veremos cómo codificar las sentencias de decisión if-then y if-then-else en Java.

Sentencia if-then

Esta sentencia permite ejecutar un bloque de código si la evaluación de una condición da como resultado true. Veamos el siguiente ejemplo.

public class Test
{
    public static void main(String[] args) {
        int number = 10;
        
        if (number > 7) {
            System.out.println("The number is greater than 7");
        }
    }
}

Al ejecutar este código se obtiene en efecto.

The number is greater than 7

Esto implica que la evaluación realizada dio como resultado true dado que 10 > 7.

Setencia if-then-else

Este sentencia agrega un camino alternativo cuando la condición es evaluada como false. Alteremos un poco el ejemplo anterior y veamos lo siguiente.

public class Test
{
    public static void main(String[] args) {
        int number = 5;
        
        if (number > 7) {
            System.out.println("The number is greater than 7");
        } else {
            System.out.println("The number is lower than 7");
        }
    }
}

Al ejecutar este código se obtiene en efecto.

The number is lower than 7

Esto implica que la evaluación realizada dio como resultado false dado que no se cumple que 5 > 7. En este momento puedes estar pensado, pero qué hay si tenemos más que dos simples condiciones ?. Veamos el siguiente ejemplo reformado del anterior.

public class Test
{
    public static void main(String[] args) {
        int number = 7;
        
        if (number > 10) {
            System.out.println("The number is greater than 10");
        } else if (number > 5) {
            System.out.println("The number is greater than 5");
        } else {
            System.out.println("The number is lower than 5");
        }
    }
}

Al ejecutar este código se obtiene en efecto.

The number is greater than 5

Esto es así ya que la primera condición fue false ya que no se cumple que 7 > 10. Dado esto se evalúa la segunda condición la cuál da como resultado true ya que 7 > 5. El último bloque se omite ya que la ejecución entró por una de las condiciones anteriores.

Condiciones complejas

Las sentencias de desición pueden evaluar una desición compuesta por una expresión compleja. Veamos el siguiente ejemplo.

public class Test
{
    public static void main(String[] args) {
        int number = 7;
        
        if (number >= 5 && number <= 10) {
            System.out.println("The number is between 5 and 10");
        } else {
            System.out.println("The number is not between 5 and 10");
        }
    }
}

Al ejecutar este código se obtiene en efecto.

The number is between 5 than 10

El operador && indica que las dos condiciones se tiene que cumplir. Adicinal a esto, existen algunas formas alternativas de evaluar una condición, es el caso del operador ternario. Recuerdas el primer ejemplo  de la sentencia if-then-else ?. Pues también se puede escribir de la siguente manera.

public class Test
{
    public static void main(String[] args) {
        int number = 5;
        
        String comparision = (number > 7) ? "greater" : "lower";
        System.out.println("The number is " + comparision + " than 7");
    }
}

Al ejecutar este código se obtiene en efecto.

The number is lower than 7

Se comporta exactamente igual que el primer ejemplo. La diferencia radica en que el condicional es ejecutado para asignar un String a la variable comparision. En este caso el bloque que se ejecuta es "lower" y no "greater". Cuando la condición es evaluada como true se ejecuta el bloque después del signo de interrogación ( ? ), cuando es evaluada como false se ejecuta el bloque que está después del caracter dos puntos ( : ).


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.