Sentencias Condicionales (if, else, switch) en Java

Domina las Sentencias Condicionales (if, else, switch) en Java

¿Quieres ser un verdadero maestro de la programación en Java? Entonces, dominar las sentencias condicionales if, else y switch es un paso crucial en tu viaje. En esta clase, te guiaremos a través de los conceptos esenciales, ejemplos prácticos y ejercicios resueltos para que puedas tomar el control total de tus flujos de ejecución. ¡Prepárate para llevar tus habilidades de programación en Java al siguiente nivel!

¿Qué son las Sentencias Condicionales en Java?

Antes de sumergirnos en los detalles, es importante comprender qué son las sentencias condicionales en Java. Estas sentencias te permiten controlar el flujo de ejecución de tu programa en función de ciertas condiciones o valores.

En otras palabras, te ayudan a tomar decisiones basadas en diferentes escenarios, lo que te brinda un control total sobre cómo se ejecuta tu código.


Sentencias if: La Base de las Condicionales

La sentencia if es la más básica y fundamental de las sentencias condicionales en Java. Te permite ejecutar un bloque de código si se cumple una determinada condición. Aquí tienes un ejemplo sencillo:

    public static void main(String[] args) {

        int edad = 18;
        if (edad >= 18) {
            System.out.println("Eres mayor de edad.");
        }

    }

En este caso, el bloque de código dentro de las llaves {} se ejecutará solo si la condición edad >= 18 es verdadera. Si la condición es falsa, el programa simplemente continuará con la siguiente línea de código.


Sentencias else: Manejando Casos Alternativos

Pero, ¿qué sucede si quieres ejecutar un código diferente cuando la condición no se cumple? Ahí es donde entra en juego la sentencia else. La sentencia else te permite especificar un bloque de código alternativo que se ejecutará si la condición inicial no se cumple. Veamos un ejemplo:

    public static void main(String[] args) {

        int edad = 18;
        if (edad >= 18) {
            System.out.println("Eres mayor de edad.");
        } else {
            System.out.println("Eres menor de edad.");
        }

    }

En este caso, si edad es mayor o igual a 18, se imprimirá "Eres mayor de edad". De lo contrario, se imprimirá "Eres menor de edad".


Sentencias else if: Manejando Múltiples Condiciones

En ocasiones, puede haber situaciones en las que necesites evaluar más de una condición. Aquí es donde entra en juego la sentencia else if. Esta sentencia te permite encadenar múltiples condiciones, permitiéndote ejecutar diferentes bloques de código según las condiciones que se cumplan.

    public static void main(String[] args) {

        int calificacion = 75;

        if (calificacion >= 90) {
            System.out.println("Excelente trabajo, obtuviste una A.");
        } else if (calificacion >= 80) {
            System.out.println("Muy bien, obtuviste una B.");
        } else if (calificacion >= 70) {
            System.out.println("Buen esfuerzo, obtuviste una C.");
        } else if (calificacion >= 60) {
            System.out.println("Necesitas mejorar, obtuviste una D.");
        } else {
            System.out.println("Lo siento, has reprobado.");
        }
        
    }

En este ejemplo, evaluamos la calificación de un estudiante utilizando múltiples sentencias else if. Si la calificación es mayor o igual a 90, se imprime "Excelente trabajo, obtuviste una A". Si no se cumple esa condición, se evalúa la siguiente condición (else if (calificacion >= 80)), y así sucesivamente hasta que se encuentre una condición que se cumpla o se llegue al bloque else final.


Switch: Una Alternativa Poderosa para Múltiples Condiciones

Aunque las sentencias if y else son extremadamente útiles, hay situaciones en las que necesitas evaluar múltiples condiciones. En estos casos, la sentencia switch puede ser una alternativa más eficiente y legible. La sentencia switch te permite evaluar una expresión y ejecutar diferentes bloques de código en función del valor de esa expresión. Veamos un ejemplo:

    public static void main(String[] args) {

        int dia = 3;
        switch (dia) {
            case 1:
                System.out.println("Lunes");
                break;
            case 2:
                System.out.println("Martes");
                break;
            case 3:
                System.out.println("Miércoles");
                break;
            default:
                System.out.println("Otro día");
                break;
        }

    }

En este ejemplo, la variable dia tiene el valor 3. Por lo tanto, la salida será "Miércoles". Si dia tuviera un valor diferente a 1, 2 o 3, se ejecutaría el bloque default.


Conclusión

¡Felicidades! Ahora tienes un sólido entendimiento de las sentencias condicionales (if, else, switch) en Java y cómo aplicarlas en diferentes situaciones. Recuerda practicar constantemente y explorar más ejemplos para solidificar tus habilidades. Con estas herramientas en tu arsenal, podrás crear programas más complejos y eficientes, controlando el flujo de ejecución de manera precisa.

IMPORTANTE:

Puedes ver todo el código utilizado en el apartado en el siguiente enlace


Ejercicios Resueltos

  • Verificar si un número es par o impar

    Verifica si un número almacenado en una variable llamada numero es par o impar

    public static void main(String[] args) { // Ejemplo de sentencia if-else para verificar si un número es par o impar int numero = 7; if (numero % 2 == 0) { System.out.println(numero + " es un número par."); } else { System.out.println(numero + " es un número impar."); } }

    En este ejemplo, utilizamos el operador módulo % para verificar si el residuo de dividir numero por 2 es 0 (lo que significa que es par) o 1 (lo que significa que es impar). Si el residuo es 0, se ejecuta el bloque if, de lo contrario, se ejecuta el bloque else.

  • Calcular el descuento en una tienda

    Dada una variable precioInicial que contiene el precio del producto y una variable descuento muestra el precio del producto, el descuento en porcentaje y el precio final del producto aplicando el descuento

        public static void main(String[] args) {
    
            // Ejemplo de sentencia if-else-if para calcular el descuento en una tienda
            double precioInicial = 100.0;
            double descuento = 0.0;
    
            if (precioInicial >= 200) {
                descuento = 0.2; // 20% de descuento
            } else if (precioInicial >= 100) {
                descuento = 0.1; // 10% de descuento
            } else {
                descuento = 0.0; // Sin descuento
            }
    
            double precioFinal = precioInicial * (1 - descuento);
            System.out.println("Precio inicial: €" + precioInicial);
            System.out.println("Descuento: " + (descuento * 100) + "%");
            System.out.println("Precio final: €" + precioFinal);
            
        }

    En este ejemplo, utilizamos varias sentencias if-else-if para determinar el descuento aplicable en función del precio inicial. Si el precio inicial es mayor o igual a €200, se aplica un descuento del 20%. Si el precio inicial es mayor o igual a €100 pero menor que €200, se aplica un descuento del 10%. Si el precio inicial es menor que €100, no se aplica ningún descuento. Finalmente, se calcula el precio final aplicando el descuento correspondiente.

  • Validar una contraseña

    Valida una contraseña para que tenga: más de 8 caracteres, y al menos un dígito, una letra minúscula y una letra mayúscula y un carácter especial.

        public static void main(String[] args) {
    
            // Ejemplo de sentencias if anidadas para validar una contraseña
            String password = "Contraseña123#";
    
            boolean hasDigit = false;
            boolean hasUpperCase = false;
            boolean hasLowerCase = false;
            boolean hasSpecialChar = false;
            int length = password.length();
    
            if (length >= 8) {
                for (int i = 0; i < length; i++) {
                    char c = password.charAt(i);
                    if (Character.isDigit(c)) {
                        hasDigit = true;
                    } else if (Character.isUpperCase(c)) {
                        hasUpperCase = true;
                    } else if (Character.isLowerCase(c)) {
                        hasLowerCase = true;
                    } else {
                        hasSpecialChar = true;
                    }
                }
    
                if (hasDigit && hasUpperCase && hasLowerCase && hasSpecialChar) {
                    System.out.println("La contraseña es válida.");
                } else {
                    System.out.println("La contraseña no cumple con los requisitos.");
                }
            } else {
                System.out.println("La contraseña debe tener al menos 8 caracteres.");
            }
            
        }

    En este ejemplo, validamos una contraseña utilizando sentencias if anidadas. Primero, verificamos si la longitud de la contraseña es de al menos 8 caracteres. Si es así, iteramos a través de cada carácter de la contraseña y verificamos si contiene al menos un dígito, una letra mayúscula, una letra minúscula y un carácter especial. Si se cumplen todas estas condiciones, la contraseña se considera válida; de lo contrario, se considera inválida.

Preguntas Frecuentes

Las sentencias if-else son más adecuadas para evaluar una o dos condiciones simples, mientras que la sentencia switch es más eficiente y legible cuando se tienen múltiples condiciones que evaluar. Sin embargo, con la introducción de las expresiones switch en Java 14, es posible utilizar switch en situaciones más complejas.

Sí, puedes anidar sentencias condicionales (if dentro de if, switch dentro de if, etc.) para manejar situaciones más complejas. Sin embargo, es importante mantener un código legible y evitar la complejidad excesiva.

Si olvidas la sentencia break en un caso de una sentencia switch, se producirá un comportamiento conocido como "caída" (fallthrough), donde se ejecutarán todos los casos siguientes hasta que se encuentre un break o se alcance el final de la sentencia switch.

Sí, puedes utilizar operadores lógicos como && (AND), || (OR) y ! (NOT) para combinar condiciones en las sentencias if y switch. Esto te permite evaluar condiciones más complejas.

El bloque else if te permite agregar condiciones adicionales después de la condición inicial if. Se utiliza cuando necesitas evaluar múltiples condiciones en una secuencia específica.

Deja un Comentario

¡Bienvenido a nuestro sitio web!

Este sitio utiliza cookies para mejorar tu experiencia de navegación y proporcionar funciones adicionales relacionadas con el análisis de tráfico y el rendimiento del sitio. Política de cookies.