Loops en Java

🔁 Loops en Java

A veces queremos repetir una o más sentencias.

Por ejemplo: imprimir "hola mundo" cinco veces en la terminal.

😬 La forma fea (no lo hagas)

No queremos repetir código así:

public class Main{
    public static void main(String[] args){
        System.out.println("hola mundo");
        System.out.println("hola mundo");
        System.out.println("hola mundo");
        System.out.println("hola mundo");
        System.out.println("hola mundo");
    }
}

Se ve horrible… y no escala. 👉 Para eso existen los bucles.

🧠 Bucle for

En Java hay varios tipos de bucles. El primero que veremos es el for loop.

La estructura básica del for tiene tres partes dentro de (...):

  1. Inicialización (contador)
  2. Condición (hasta cuándo se repite)
  3. Actualización (cómo cambia el contador)

🧩 Estructura básica

public class Main{
    public static void main(String[] args){
        for (int i = 0; i < 5; i++)
            System.out.println("hola mundo");
    }
}

📌 Aquí solo hay una sentencia, entonces no son obligatorias las llaves {}.

✅ Con llaves {} (más común)

Cuando queremos repetir varias sentencias, usamos un bloque:

public class Main{
    public static void main(String[] args){
        for (int i = 0; i < 5; i++){
            System.out.println("Holi mundo");
        }
    }
}

Esto imprime "Holi mundo" 5 veces.

🔍 ¿Cómo se ejecuta un for?

En este for (int i = 0; i < 5; i++):

  • Primero: int i = 0
  • Luego: evalúa i < 5
  • Si es true: ejecuta el cuerpo del bucle
  • Al final: ejecuta i++
  • Repite hasta que la condición sea false

Cuando i llega a 5: 5 < 5 es false → se sale del bucle.

🎯 Truco: repetir 5 veces

Dos formas típicas:

Opción A

int i = 0; i < 5; i++

Imprime: 0,1,2,3,4

Opción B

int i = 1; i <= 5; i++

Imprime: 1,2,3,4,5

🔢 Imprimir el contador

public class Main{
    public static void main(String[] args){
        for (int i = 1; i <= 5; i++){
            System.out.println("Holi mundo " + i);
        }
    }
}

Salida:

Holi mundo 1
Holi mundo 2
Holi mundo 3
Holi mundo 4
Holi mundo 5

🔄 Contar hacia atrás

También podemos imprimir en orden inverso:

public class Main{
    public static void main(String[] args){
        for (int i = 5; i > 0; i--){
            System.out.println("Holi mundo " + i);
        }
    }
}

Salida:

Holi mundo 5
Holi mundo 4
Holi mundo 3
Holi mundo 2
Holi mundo 1

🔤 Extra cool: recorrer un String con charAt

Esto es clave para explicar en clase:

  • texto.charAt(0) → devuelve 'H'
  • texto.charAt(1) → devuelve 'O'
  • etc.

📌 charAt(i) saca el carácter en la posición i.

✅ Ejemplo completo con charAt

public class EjemploCharAt {
    public static void main(String[] args) {
        String texto = "HOLA";

        for (int i = 0; i < texto.length(); i++) {
            char c = texto.charAt(i);
            System.out.println("En la posición " + i + " está: " + c);
        }
    }
}

✅ Recorre la palabra letra por letra.