El control de flujo en Java es esencial para tomar decisiones y repetir bloques de código. Los programadores utilizan estructuras de control como condicionales y bucles para dirigir el flujo del programa según determinadas condiciones y repeticiones. En esta entrada, aprenderás a usar las estructuras más comunes de control de flujo: if
, else if
, else
y los bucles for
, while
, do-while
.
Condicionales en Java
Las estructuras condicionales permiten ejecutar diferentes bloques de código dependiendo de si una condición es verdadera o falsa. En Java, las estructuras más comunes para esto son if
, else if
y else
.
1. Estructura if
El bloque if
ejecuta un bloque de código solo si la condición es verdadera.
int edad = 18; if (edad >= 18) { System.out.println("Eres mayor de edad."); }
En este ejemplo, si la variable edad
es mayor o igual a 18, se imprime el mensaje «Eres mayor de edad».
2. Estructura else if
y else
El bloque else if
te permite comprobar varias condiciones en secuencia. Si ninguna de las condiciones es verdadera, puedes usar el bloque else
para ejecutar un código por defecto.
int edad = 16; if (edad >= 18) { System.out.println("Eres mayor de edad."); } else if (edad >= 13) { System.out.println("Eres un adolescente."); } else { System.out.println("Eres un niño."); }
Aquí, se comprueban varias condiciones:
- Si
edad >= 18
, se ejecuta el primer bloque. - Si no, se comprueba si
edad >= 13
y se ejecuta el bloque correspondiente. - Si ninguna de las condiciones es verdadera, se ejecuta el bloque
else
.
Condicional switch
El switch
es otra estructura condicional que se usa cuando deseas comparar el valor de una variable con múltiples opciones posibles.
int dia = 2; 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("Día inválido"); }
El programa imprimirá «Martes» si dia
es igual a 2. El bloque default
se ejecutará si ningún caso coincide.
Bucles en Java
Los bucles son estructuras que permiten repetir un bloque de código varias veces. Los bucles más comunes en Java son for
, while
y do-while
.
1. Bucle for
El bucle for
se utiliza cuando conoces de antemano cuántas veces deseas repetir un bloque de código.
for (int i = 1; i <= 5; i++) { System.out.println("Iteración " + i); }
En este ejemplo:
- La variable
i
se inicializa en 1. - El bucle se ejecuta mientras
i
sea menor o igual a 5. - Después de cada iteración,
i
se incrementa en 1.
Resultado:
Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5
2. Bucle while
El bucle while
ejecuta un bloque de código mientras la condición especificada sea verdadera.
int i = 1; while (i <= 5) { System.out.println("Iteración " + i); i++; }
El bloque de código se repetirá mientras la variable i
sea menor o igual a 5.
3. Bucle do-while
El bucle do-while
es similar al while
, pero garantiza que el bloque de código se ejecute al menos una vez, ya que la condición se comprueba al final del bucle.
int i = 1; do { System.out.println("Iteración " + i); i++; } while (i <= 5);
En este caso, el bucle se ejecuta al menos una vez, incluso si la condición es falsa desde el principio.
Control del flujo dentro de bucles: break
y continue
break
: Se utiliza para salir completamente de un bucle.
for (int i = 1; i <= 5; i++) { if (i == 3) { break; // Sale del bucle cuando i es 3 } System.out.println("Iteración " + i); }
Resultado:
Iteración 1 Iteración 2
continue
: Se utiliza para saltar la iteración actual y continuar con la siguiente.
for (int i = 1; i <= 5; i++) { if (i == 3) { continue; // Salta la iteración cuando i es 3 } System.out.println("Iteración " + i); }
Resultado:
Iteración 1 Iteración 2 Iteración 4 Iteración 5
Ejemplo Completo de Control de Flujo
A continuación, te muestro un ejemplo práctico que combina condicionales y bucles:
public class ControlDeFlujo { public static void main(String[] args) { int edad = 20; // Condicional if-else if (edad >= 18) { System.out.println("Eres mayor de edad."); } else { System.out.println("Eres menor de edad."); } // Bucle for System.out.println("Contando del 1 al 5:"); for (int i = 1; i <= 5; i++) { System.out.println(i); } // Bucle while System.out.println("Contando hacia atrás del 5 al 1:"); int contador = 5; while (contador > 0) { System.out.println(contador); contador--; } } }