Estructuras condicionales en Java

Las estructuras condicionales nos permiten controlar el flujo de un programa dependiendo si se cumple o no una condición. Por ejemplo, cuando colocas tus datos en un formulario de Login, se verifica que los datos sean correctos, de ser así se te permite el ingreso, de lo contrario se denegará.

Existen muchos tipos de estructuras condicionales, todas con el mismo principio, ejecutar un bloque de código según la condición que se cumpla.

if - else

Esta estructura condicional, nos permite controlar el flujo del programa por dos caminos, si se cumple la condición ejecutará el bloque de código incluido entre sus llaves. Sin embargo, podemos colocar condiciones anidadas, si en una no se cumple evaluará la siguiente y así sucesivamente hasta que alguna se cumpla. También podemos ejecutar cierto código si ninguna condición se cumple.

Usando sólo if

Ejecutará el bloque de código incluido entre las llaves de if sólo si la condición es verdadera, de lo contrario no ejecutará nada.

if(condición) {
  // bloque de código a ejecutar si la condición se cumple
}

En este ejemplo, vamos a permitir el acceso al usuario sólo si es mayor de edad.

public class IfElse {
    public static void main(String[] args) {
        System.out.println("Ingresa la edad del usuario:");

        // Declaramos la variale input tipo Scanner para leer datos de la consola
        Scanner input = new Scanner(System.in);

        // Leemos el input de la consola y almacenamos la edad del usuario
        byte edad = input.nextByte();

        // Validamos si el usuario es mayor de edad para permitir el acceso.
        if(edad >= 18) {
            System.out.println("Acceso permitido.");
        }
    }
}

Usando if y else

Ejecutará el bloque de código incluido entre las llaves de if sólo si la condición es verdadera, de lo contrario ejecutará el bloque de código incluido entre las llaves de else.

if(condición) {
  // bloque de código a ejecutar si se cumple la condición
} else {
  // bloque de código a ejecutar si la condición no se cumple
}

En este ejemplo, vamos a permitir el acceso al usuario sólo si es mayor de edad, si se cumple la condición denegaremos el acceso.

public class IfElse {
    public static void main(String[] args) {
        System.out.println("Ingresa la edad del usuario:");

        // Declaramos la variale input tipo Scanner para leer datos de la consola
        Scanner input = new Scanner(System.in);

        // Leemos el input de la consola y almacenamos la edad del usuario
        byte edad = input.nextByte();

        // Validamos si el usuario es mayor de edad para permitir el acceso; de lo contrario se le denegará.
        if(edad >= 18) {
            System.out.println("Acceso permitido.");
        } else {
            System.out.println("Acceso denegado. Eres menor de edad.");
        }
    }
}

Usando else if

Si tenemos más de una condición a evaluar, aquí es donde usamos else if para agregar otra condición. Tener en cuenta que el programa irá validando las condiciones de arriba hacia abajo hasta que alguna se cumpla.

if(condición 1) {
  // bloque de código a ejecutar si se cumple la condición 1
} else if (condición 2) {
  // bloque de código a ejecutar si se cumple la condición 2
} else if (condición 3) {
  // bloque de código a ejecutar si se cumple la condición 3
} else if (condición 4) {
  // bloque de código a ejecutar si se cumple la condición 4
} else {
  // bloque de código a ejecutar si ninguna condición se cumple
}

En este ejemplo, vamos a permitir el acceso al usuario sólo si es mayor de edad, si se cumple la condición denegaremos el acceso; asimismo, si el valor de la edad ingresado es negativo mostraremos un mensaje de que no esta permitido dichos valores.

public class IfElse {
    public static void main(String[] args) {
        System.out.println("Ingresa la edad del usuario:");

        // Declaramos la variale input tipo Scanner para leer datos de la consola
        Scanner input = new Scanner(System.in);

        // Leemos el input de la consola y almacenamos la edad del usuario
        byte edad = input.nextByte();

        // Validamos si el usuario es mayor de edad para permitir el acceso; de lo contrario se le denegará. También validaremos que la edad ingresada no sea un valor negativo.
        if(edad >= 18) {
            System.out.println("Acceso permitido.");
        } else if(edad < 18 && edad >= 0) {
            System.out.println("Acceso denegado. Eres menor de edad.");
        } else {
            System.out.println("La edad no puede ser negativo");
        }
    }
}

Operador Ternario

Al igual que el if - else, evaluamos una condición y ejecutamos cierto código si la condición es verdadero o falso. La estructura es la siguiente :

(condición) ? /* Código a ejecutar si la condición es verdadero */ : /* Código a ejecutar si la condición es falso */

En este ejemplo, vamos a permitir el acceso al usuario sólo si es mayor de edad, de lo contrario se le denegará.

public class OperadorTernario {
    public static void main(String[] args) {
        System.out.println("Ingresa la edad del usuario:");

        // Declaramos la variale input tipo Scanner para leer datos de la consola
        Scanner input = new Scanner(System.in);

        // Leemos el input de la consola y almacenamos la edad del usuario
        byte edad = input.nextByte();

        // Validamos si el usuario es mayor de edad para permitir el acceso; de lo contrario se le denegará.
        System.out.println(edad >= 18 ? "Acceso permitido." : "Acceso denegado. Eres menor de edad.");
    }
}

Switch

A diferencia de if-else y el operador ternario, la estructura condicional switch evalua el valor de una variable.

switch(variable) {
  case "valor 1":
  break;
  case "valor 2":
  break:
  default:
  break;
}

break nos permite salir del bucle sin ejecutar los siguientes casos. Por ejemplo, si no colocamos break y el caso 1 se cumple, también se ejecutarán los siguientes casos que existan.

default es similar al else, ya que si ninguno de los casos se cumple, se ejecutará el caso default.

En este ejemplo, vamos a simular la creación de un personaje de videojuego.

public class Switch {
    public static void main(String[] args) {
        System.out.println("Ingresa el código del personaje a crear:"
                + "\n1. Mago"
                + "\n2. Guerrero"
                + "\n3. Demonio");

        // Declaramos la variale input tipo Scanner para leer datos de la consola
        Scanner input = new Scanner(System.in);

        // Leemos el input de la consola y almacenamos la edad del usuario
        byte tipo = input.nextByte();

        /*
        Si es 1 crearemos un Mago
        Si es 2 crearemos un Guerrero
        Si es 3 crearemos un Demonio
        Si otro valor es ingresado, indicaremos que la opción no es válida.
        */
        switch(tipo) {
            case 1 : System.out.println("Mago creado");
                break;
            case 2 : System.out.println("Guerrero creado");
                break;
            case 3 : System.out.println("Demonio creado");
                break;
            default : System.out.println("Opción inválida. Sólo existe 1, 2 y 3");
                break;
        }
    }
}

Tener en cuenta que con un if - else podemos colocar un rango de valores en la condición, como un rango de edades o rango de salario, etc. Mientras que, con switch solo podemos crear casos para valores específicos.

Espero que este artículo te haya sido útil.

¡Happy coding! 😉

Ver más

Creado con y por Maadcode | ©2021 todos los derechos reservados