¿Qué es un bucle for en Java?
Un bucle for es una estructura de control en Java que permite repetir un bloque de código un número determinado de veces. Es ideal para situaciones en las que conoces de antemano cuántas veces necesitas ejecutar el bloque de código.
Sintaxis del bucle for
for (inicialización; condición; actualización) {
// bloque de código a ejecutar
}
Por ejemplo:
for (int i = 0; i < 5; i++) {
System.out.println("Valor de i: " + i);
}
Ejemplos del bucle for
Recorrer un arreglo
int[] numeros = {10, 20, 30, 40};
for (int i = 0; i < numeros.length; i++) {
System.out.println(numeros[i]);
}
Calcular la suma de los primeros 100 números
int suma = 0;
for (int i = 1; i <= 100; i++) {
suma += i;
}
System.out.println("Suma: " + suma);
Este código implementa la fórmula de la suma de una progresión aritmética:
\[ \text{Suma} = \frac{n(n+1)}{2} \]
¿Qué es un bucle for-each?
El bucle for-each es una forma simplificada de recorrer colecciones y arreglos en Java. Se introdujo en Java 5 y es especialmente útil cuando no necesitas el índice de los elementos.
for (tipo elemento : colección) {
// bloque de código a ejecutar
}
Por ejemplo:
String[] frutas = {"Manzana", "Banana", "Cereza"};
for (String fruta : frutas) {
System.out.println(fruta);
}
Diferencias clave entre for y for-each
forte da control completo sobre el índice y permite modificar los elementos.for-eaches más legible y seguro, pero no te permite modificar directamente el contenido del arreglo si es un tipo primitivo.for-eachno permite saltar elementos con facilidad ni recorrer de forma inversa.
¿Cuándo usar cada tipo de bucle?
Usa for cuando:
- Necesitas el índice.
- Vas a modificar elementos del arreglo.
- Requieres recorrer la colección en orden inverso o con pasos personalizados.
Usa for-each cuando:
- Solo necesitas acceder a cada elemento.
- Quieres un código más limpio y legible.
Buenas prácticas
- Evita usar
forcuando no necesitas el índice. - No modifiques colecciones dentro de un
for-eachdirectamente (puede lanzarConcurrentModificationException). - Usa nombres descriptivos para las variables de bucle.
- Considera usar
Streamsen Java 8+ para operaciones complejas.

