Introducción
Los bucles te permiten repetir bloques de código de manera eficiente. En este capítulo aprenderás a usar los bucles for, while y do-while correctamente con ejemplos y buenas prácticas.
Bucle For
El bucle for es ideal para contar o recorrer arrays cuando sabes cuántas iteraciones necesitas.
// FOR: ideal para contar o recorrer arreglos
for (int i = 0; i < 5; i++) {
System.out.println("Iteración #" + i);
}
Sintaxis:
- Inicialización:
int i = 0 - Condición:
i < 5 - Incremento:
i++
Bucle While
El bucle while se usa cuando no sabes cuántas veces se repetirá. Verifica la condición antes de ejecutar.
// WHILE: se usa cuando no sabes cuántas veces se repetirá
int contador = 0;
while (contador < 3) {
System.out.println("Contador: " + contador);
contador++;
}
Bucle Do-While
El bucle do-while ejecuta al menos una vez antes de verificar la condición.
// DO-WHILE: ejecuta al menos una vez
int opcion;
do {
opcion = obtenerOpcionUsuario();
System.out.println("Elegiste: " + opcion);
} while (opcion != 0);
Bucles y Funciones
Puedes combinar bucles con funciones para crear lógica reutilizable:
// FUNCIONES Y REPETICIONES
public static int sumaHasta(int limite) {
int suma = 0;
for (int i = 1; i <= limite; i++) {
suma += i;
}
return suma;
}
int resultado = sumaHasta(10); // Resultado: 55
System.out.println("La suma de 1 a 10 es: " + resultado);
Buenas Prácticas
- Usa
forcuando conoces el número de iteraciones - Usa
whilecuando el número de iteraciones es desconocido - Usa
do-whilecuando necesitas al menos una ejecución - Evita bucles infinitos asegurando que la condición eventualmente sea falsa
- Usa
breakpara salir de un bucle anticipadamente cuando sea necesario - Usa
continuepara saltar a la siguiente iteración
Malas Prácticas Comunes
- Crear bucles infinitos accidentalmente al olvidar actualizar la variable del bucle
- Modificar la variable del bucle dentro del cuerpo de manera inesperada
- Usar condiciones complejas difíciles de entender
- No considerar casos extremos (arrays vacíos, cero iteraciones)
Ejemplos Prácticos
Suma de elementos de un array:
int[] numeros = {1, 2, 3, 4, 5};
int suma = 0;
for (int num : numeros) {
suma += num;
}
System.out.println("Suma: " + suma); // Suma: 15
Encontrar primer número par:
int[] numeros = {1, 3, 5, 8, 9};
for (int num : numeros) {
if (num % 2 == 0) {
System.out.println("Primer par: " + num);
break;
}
}
Saltar números negativos:
int[] numeros = {-2, 3, -1, 5, -3, 7};
for (int num : numeros) {
if (num < 0) continue;
System.out.println("Positivo: " + num);
}
Conclusión
Los bucles son esenciales para automatizar tareas repetitivas. Elegir el tipo correcto de bucle y usarlo apropiadamente hará tu código más eficiente y legible.
En el próximo capítulo, aprenderemos sobre HashMap y cómo trabajar con estructuras de datos clave-valor.