En el lenguaje C, las estructuras iterativas permiten repetir bloques de código según condiciones específicas. Existen tres tipos principales: buclees for, while y do-while.
1. Bucle for
Ideal para situaciones con número de iteraciones definido. Combina inicialización, condición y actualización en una sola línea.
Sintaxis:
for(inicialización; condición; actualización)
{
// bloque de código
}
Flujo de ejecución:
- Ejecuta la inicialización una vez (ej: declaración de contador)
- Evalúa la condición:
- Si verdadera (no cero), ejecuta el bloque
- Si falsa (cero), finaliza el bucle
- Realiza la actualización (ej: incremento/decremento)
- Repite pasos 2 y 3
Ejemplo: Mostrar números del 1 al 5
int contador;
for(contador = 1; contador <= 5; contador++)
{
printf("%d ", contador); // Salida: 1 2 3 4 5
}
2. Bucle while
Adecuado cuando el número de iteraciones depende de una condición dinámica.
Sintaxis:
while(expresión_condicional)
{
// bloque de código
}
Flujo de ejecución:
- Verifica la condición:
- Si verdadera, ejecuta el bloque
- Si falsa, finaliaz
- Debe incluir actualización manual de variables en el bloque
Ejemplo: Sumar números del 1 al 10
int acumulado = 0;
int valor = 1;
while (valor <= 10) {
acumulado += valor; // Resultado: 55
valor++;
}
3. Bucle do-while
Garantiza al menos una ejecución del bloque antes de verificar la condición.
Sintaxis:
do{
// bloque de código
}while(expresión_condicional);
Flujo de ejecución:
- Ejecuta el bloque una vez
- Evalúa la condición:
- Si verddaera, repite
- Si falsa, finaliza
Ejemplo: Validación de entrada numérica
int entrada;
do {
printf("Introduzca valor (0 para salir): ");
scanf("%d", &entrada);
} while(entrada != 0);
4. Control de flujo
**a) Instrucción break**Finaliza inmediatamente el bucle más interno.
Ejemplo: Buscar múltiplo de 3
for (int numero = 1; numero <= 10; numero++) {
if (numero % 3 == 0) {
printf("Encontrado: %d", numero); // Salida: 3
break;
}
}
**b) Instrucción continue**Salta al final del bloque actual y continúa la iteración.
Ejemplo: Mostrar impares del 1 al 10
for (int numero = 1; numero <= 10; numero++) {
if (numero % 2 == 0) {
continue; // Omite pares
}
printf("%d ", numero); // Salida: 1 3 5 7 9
}