Condicionales

Condicionales

Sentencias Condicionales en Java

Las sentencias condicionales son estructuras de control que permiten ejecutar bloques de código dependiendo de si se cumple o no una condición. Son fundamentales en la toma de decisiones dentro de un programa, ya que permiten que el flujo de ejecución cambie en función de los valores de ciertas variables o expresiones.

En Java, las principales sentencias condicionales son:

  1. if y else
  2. else if
  3. switch

Vamos a explicar cada una de ellas en detalle.


1. Sentencia if

La sentencia if es la forma más básica de decisión. Evalúa una condición booleana (expresión que devuelve true o false). Si la condición es verdadera, se ejecuta el bloque de código dentro de las llaves {}, de lo contrario, se omite.

Sintaxis:

if (condición) {
    // Bloque de código que se ejecuta si la condición es verdadera

Ejemplo:

int edad = 20;

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

En este caso, el mensaje "Eres mayor de edad." solo se imprimirá si la variable edad es mayor o igual a 18.


2. Sentencia else

La sentencia else se utiliza en conjunto con if. Si la condición del if es falsa, el bloque de código dentro del else se ejecutará. Es decir, actúa como una “alternativa” cuando la condición no se cumple.

Sintaxis:

if (condición) {
    // Bloque de código si la condición es verdadera
} else {
    // Bloque de código si la condición es falsa
}

Ejemplo:

int edad = 16;

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

En este caso, el mensaje "Eres menor de edad." se imprimirá porque la variable edad es 16, lo que no cumple la condición edad >= 18.


3. Sentencia else if

Cuando hay múltiples condiciones que se deben evaluar de manera secuencial, podemos usar else if. Esta sentencia permite evaluar varias condiciones diferentes, cada una con su bloque de código.

Sintaxis:

if (condición1) {
    // Bloque de código si la condición1 es verdadera
} else if (condición2) {
    // Bloque de código si la condición2 es verdadera
} else {
    // Bloque de código si todas las condiciones anteriores son falsas
}

Ejemplo:

int edad = 18;

if (edad < 18) {
    System.out.println("Eres menor de edad.");
} else if (edad == 18) {
    System.out.println("Acabas de cumplir 18 años.");
} else {
    System.out.println("Eres mayor de edad.");
}

En este ejemplo, el mensaje "Acabas de cumplir 18 años." se imprimirá, ya que edad es exactamente 18. Si fuera otro valor, el programa verificaría la siguiente condición o, si ninguna es verdadera, ejecutaría el bloque dentro del else.


4. Sentencia switch

La sentencia switch se utiliza para comparar una sola variable con varios posibles valores. Es útil cuando tenemos muchas condiciones que dependen de un solo valor, ya que puede hacer que el código sea más limpio y fácil de leer en comparación con varias sentencias if-else.

Sintaxis:

switch (expresión) {
    case valor1:
        // Bloque de código si la expresión es igual a valor1
        break;
    case valor2:
        // Bloque de código si la expresión es igual a valor2
        break;
    default:
        // Bloque de código si ningún valor coincide
}
  • expresión: Es la variable o expresión que se evalúa.
  • case: Cada posible valor que puede tener la expresión.
  • break: Sale del bloque switch después de ejecutar un case. Sin break, el programa continuará evaluando los demás case.
  • default: Es el bloque que se ejecuta si ninguno de los valores de los case coincide con la expresión.

Ejemplo:

int dia = 3;
String nombreDia;

switch (dia) {
    case 1:
        nombreDia = "Lunes";
        break;
    case 2:
        nombreDia = "Martes";
        break;
    case 3:
        nombreDia = "Miércoles";
        break;
    case 4:
        nombreDia = "Jueves";
        break;
    case 5:
        nombreDia = "Viernes";
        break;
    case 6:
        nombreDia = "Sábado";
        break;
    case 7:
        nombreDia = "Domingo";
        break;
    default:
        nombreDia = "Día inválido";
}

System.out.println("El día de la semana es: " + nombreDia)

En este ejemplo, como dia es igual a 3, el mensaje "El día de la semana es: Miércoles" se imprimirá. Si dia tuviera un valor fuera del rango de 1 a 7, el bloque default se ejecutaría y el mensaje sería "Día inválido".

Características adicionales del switch:

  • A partir de Java 12, el switch puede ser utilizado con una sintaxis más moderna, conocida como “Switch Expressions”. Esto permite que un switch devuelva un valor directamente sin necesidad de usar break o return en algunos casos.

Ejemplo de switch como expresión:

int dia = 3;

String nombreDia = switch (dia) {
    case 1 -> "Lunes";
    case 2 -> "Martes";
    case 3 -> "Miércoles";
    case 4 -> "Jueves";
    case 5 -> "Viernes";
    case 6 -> "Sábado";
    case 7 -> "Domingo";
    default -> "Día inválido";
};

System.out.println("El día de la semana es: " + nombreDia);

En este caso, la sentencia switch se usa como una expresión, y se asigna el valor a nombreDia directamente.