Bucles
Los bucles son una de las herramientas más potentes en programación, permitiendo automatizar tareas repetitivas y manejar grandes volúmenes de datos de manera eficiente.


¿De que trata?
En programación, los bucles (también conocidos como ciclos o loops) son estructuras de control que permiten repetir un bloque de código varias veces. Imagina que tienes que realizar la misma acción 100 veces, o seguir haciendo algo hasta que se cumpla una condición específica. En lugar de escribir el mismo código una y otra vez, los bucles te permiten hacerlo de manera eficiente y concisa.
Los bucles son esenciales para tareas como:
Iterar sobre colecciones de datos: Recorrer todos los elementos de una lista, un arreglo, una cadena de texto, etc.
Realizar cálculos repetitivos: Calcular la suma de muchos números, aplicar una fórmula a cada elemento.
Esperar una condición: Continuar solicitando una entrada de usuario hasta que sea válida.
Animaciones o simulaciones: Actualizar el estado de algo en cada "cuadro" o "paso" de tiempo.


¿Cómo se hacen? (For, While, Repetir... Hasta Que)
Existen diferentes tipos de bucles, cada uno adecuado para escenarios ligeramente distintos. Los más comunes son for y while. Algunos lenguajes también tienen variaciones como do-while (que se asemeja a "repetir... hasta que").
1. Bucle for (Para)
El bucle for se utiliza generalmente cuando sabes cuántas veces quieres que se repita el código, o cuando quieres iterar sobre una secuencia de elementos (como una lista de números, una cadena de caracteres, etc.).
Sintaxis general:


Inicialización: Se ejecuta una sola vez al principio del bucle (ej. i = 0).
Condición: Se evalúa antes de cada iteración. Si es verdadera, el bucle continúa. Si es falsa, el bucle termina.
Actualización: Se ejecuta al final de cada iteración (ej. i++ para incrementar un contador).
Ejemplos:
Python (Iteración sobre un rango de números):


Para copiar:
for i in range(5):
print(f"Número de iteración (for): {i}")
print("---")
frutas = ["manzana", "banana", "cereza"]
for fruta in frutas:
print(f"Me gusta comer {fruta}.")
JavaScript (Bucle tradicional con contador):


Para copiar:
for (let i = 0; i < 3; i++) {
console.log(`Contador (for): ${i}`);
}
console.log("---");
const colores = ["rojo", "verde", "azul"];
for (let i = 0; i < colores.length; i++) {
console.log(`El color es: ${colores[i]}`);
}
Java (Bucle tradicional con contador):


Para copiar:
for (int i = 0; i < 4; i++) {
System.out.println("Iteración (for): " + i);
}
System.out.println("---");
String[] nombres = {"Ana", "Pedro", "Luisa"};
for (String nombre : nombres) {
System.out.println("Hola, " + nombre);
}
2. Bucle while (Mientras)
El bucle while se utiliza cuando quieres repetir un bloque de código mientras una condición específica sea verdadera. No necesariamente sabes de antemano cuántas veces se ejecutará; se repite hasta que la condición se vuelva falsa.
Sintaxis general:


Ejemplos:
Python:


Para copiar:
contador = 0
while contador < 3:
print(f"Contador (while): {contador}")
contador += 1
print("¡Fin del bucle while!")
JavaScript:


Para copiar:
let energia = 100;
while (energia > 0) {
console.log(`Nivel de energía: ${energia}`);
energia -= 20;
if (energia <= 0) {
console.log("¡Energía agotada!");
}
}
Java:




Para copiar:
int intentos = 3;
String claveCorrecta = "secreto";
String intentoUsuario = "";
intentoUsuario = "incorrecto";
while (!intentoUsuario.equals(claveCorrecta) && intentos > 0) {
System.out.println("Contraseña incorrecta. Te quedan " + intentos + " intentos.");
intentos--;
if (intentos > 0) {
intentoUsuario = "secreto";
}
}
if (intentoUsuario.equals(claveCorrecta)) {
System.out.println("¡Acceso concedido!");
} else {
System.out.println("Demasiados intentos. Acceso denegado.");
}
3. Bucle do-while (Repetir... Hasta Que)
Este tipo de bucle es una variación del while y se encuentra en lenguajes como Java, C++, C#. La característica principal es que el bloque de código se ejecuta al menos una vez, y luego la condición se evalúa al final de cada iteración.
Sintaxis general:


Ejemplo en Java:


Para copiar:
int numero = 0;
do {
System.out.println("El número es: " + numero);
numero++;
} while (numero < 3);
System.out.println("---");
int opcion;
do {
System.out.println("Presiona 1 para salir.");
opcion = 0;
if (numero == 3) {
opcion = 1;
}
} while (opcion != 1);
System.out.println("¡Saliste del programa!");
(Nota: Python y JavaScript no tienen un do-while nativo, pero puedes simularlo con un while que comience con una condición True y tenga un break interno).
Controlando el Flujo de los Bucles (break y continue)
Dentro de los bucles, a menudo querrás tener un control más fino sobre su ejecución:
break: Sirve para terminar el bucle inmediatamente, saltando al código que le sigue.
continue: Sirve para saltar la iteración actual y pasar a la siguiente iteración del bucle.
Ejemplo Python:


Para copiar:
for i in range(10):
if i == 5:
print("Encontré el 5, ¡saliendo del bucle!")
break
print(f"Procesando número: {i}")
print("\n---")
for j in range(5):
if j == 2:
print("Saltando el número 2.")
continue
print(f"Procesando otro número: {j}")