¿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
for
te da control completo sobre el índice y permite modificar los elementos.for-each
es más legible y seguro, pero no te permite modificar directamente el contenido del arreglo si es un tipo primitivo.for-each
no 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
for
cuando no necesitas el índice. - No modifiques colecciones dentro de un
for-each
directamente (puede lanzarConcurrentModificationException
). - Usa nombres descriptivos para las variables de bucle.
- Considera usar
Streams
en Java 8+ para operaciones complejas.