Java / Básico / Bucle For
Bucle For en Java
Cuando sabes exactamente cuantas veces quieres repetir un bloque de código, usa un bucle For en lugar de un bucle While
Bucle for
El bucle for ejecuta un bloque de código hasta que se cumpla una condición.
Este se compone de 3 sencillas instrucciones:
- Instrucción 01 Se ejecuta una sola vez antes de la ejecución del bloque de código.
- Instrucción 02 Define la condición para ejecutar el bloque de código
- Instrucción 03 Se ejecuta cada vez después de la finalización del bloque de código.
El siguiente ejemplo imprimirá los números del 0 al 5:
1
2
3
for (int i = 0; i < 6; i++){
System.out.println(i);
}
En ese ejemplo la instrucción 01 es: int i = 0 que establece una variable antes de que comience el bucle, la instrucción 02: i < 6 define la condición para que se ejecute el bucle y si la condición es verdadera, el bucle se ejecutará de nuevo; si es falsa, el bucle terminará y por ultimo la instrucción 03: i++ que incrementa un valor, en este caso i cada vez que se ejecuta el bloque de código.
Veamos varios ejemplos:
Imprimir números pares entre 0 y 10:
1
2
3
for (int i = 0; i < 10; i=i+2){
System.out.println(i);
}
Tabla de multiplicar del 8:
1
2
3
for (int i = 0; i < 11; i++){
System.out.println("8 x " + i + " = " + 8*i);
}
Cuenta atrás:
1
2
3
for (int i = 10; i > -1; i--){
System.out.println(i);
}
Condición falsa
Al igual que con los bucles While, un bucle For tampoco tiene porque llegar a ejecutarse si su condición es falsa desde el inicio.
1
2
3
for (int i = 100; i < 10; i++){
System.out.println("Este texto jamas se mostrara");
}
Bucles anidados
También es posible colocar un bucle dentro de otro bucle. Esto se llama bucle anidado.
El “bucle interno” se ejecutará una vez por cada iteración del “bucle externo”:
1
2
3
4
5
6
7
8
for (int i = 1; i <= 2; i++){
System.out.println("Bucle Externo: " + i); // Se ejecutara 2 veces
for (int j = 1; j <= 3; j++){
System.out.println("Bucle Interno: " + j); // Se ejecutara 6 veces (2*3)
}
}
Salida:
1
2
3
4
5
6
7
8
Bucle Externo: 1
Bucle Interno: 1
Bucle Interno: 2
Bucle Interno: 3
Bucle Externo: 2
Bucle Interno: 1
Bucle Interno: 2
Bucle Interno: 3
Muchas personas se preguntan porque entre medias de las salidas de: Bucle Interno: X aparece enmedio una salida de Bucle Externo: 2 y no aparece esa salida al principio, al final o de la forma que sea pero las dos jutnas, la respuesta es muy sencilla, cuando el Bucle Externo se lanza ejecuta el codigo que tiene dentro que en este caso es la salida por consola y el segundo bucle, y ahi esta la calbe, el segundo bucle, hasta que el segundo bucle no termine, el primero no podra volver a ejecutarse, una manera mas facil de verlo seria:
1
2
3
4
5
6
7
8
9
10
11
12
13
Primera ejecución bucle externo:
Bucle Externo: 1
Bucle Interno: 1
Bucle Interno: 2
Bucle Interno: 3
Fin primera ejecución bucle externo.
Segunda ejecución bucle externo:
Bucle Externo: 2
Bucle Interno: 1
Bucle Interno: 2
Bucle Interno: 3
Fin ejecución bucle externo.
Bucle For Each
También existe un bucle for-each, que se utiliza exclusivamente para recorrer los elementos de un Array u otras estructuras de datos.
El bucle for-each es más simple y legible que un bucle regular, ya que no necesitas un contador como i < array.length:
1
2
3
4
5
String motos[] = {"Honda", "BMW", "Ducati", "Yamaha", "Suzuki", "Aprilia"};
for (String moto: motos){
System.out.println(moto);
}