Continue: cómo saltar iteraciones sin romper bucles
Clase 10 de 13 • Curso de Control de Flujo en C
Contenido del curso
Toma de decisiones
Control de Bucles en C
Uso de las instrucciones break y continue
Cierre
Domina el control de flujo en C con la instrucción continue: aprende a saltar una iteración sin salir del bucle y entiende, con ejemplos claros, cómo se diferencia de break. Optimiza tu código cuando solo quieres evitar una operación puntual dentro de un for, while o do while.
¿Qué hace continue en C y por qué importa en el control de flujo?
Usar continue dentro de un bucle fuerza la ejecución de la siguiente iteración. No rompe el ciclo, solo salta el código restante de la vuelta actual. A diferencia de break, no sales del bucle: continúas hasta que la condición lo permita.
- Solo en bucles: se usa en for, while y do while.
- No en switch: no funciona en switch, aunque sí dentro de bucles que estén dentro de un switch.
- Efecto directo: salta la impresión, cálculo o lógica restante de esa iteración.
¿Cómo luce un for normal y qué cambia con continue?
Un for que imprime de 0 a 29 funciona así, pero con continue no imprime nada porque cada vuelta se salta la impresión.
#include <stdio.h>
int main() {
int i;
// Caso 1: for normal imprime 0..29.
for (i = 0; i < 30; i++) {
printf("%d\n", i);
}
// Caso 2: con continue no imprime nada dentro del bucle.
for (i = 0; i < 30; i++) {
continue; // salta el printf de esta iteración
printf("%d\n", i);
}
return 0;
}
¿Por qué no se imprime nada con continue?
Porque continue salta el resto del cuerpo del bucle. La iteración cuenta, pero el código posterior a continue no corre en esa vuelta. El bucle sigue hasta completar sus iteraciones.
¿Cómo se compara continue con break en un ciclo for?
La diferencia clave: break rompe el bucle de inmediato; continue solo salta a la próxima iteración. El número de iteraciones realizadas cambia el estado de variables como i.
- continue: completa todas las iteraciones previstas por la condición.
- break: detiene el ciclo en el instante en que se ejecuta.
- Efecto observable: el valor de
ial salir del bucle revela cuántas iteraciones se hicieron.
¿Qué valor toma i al salir con continue vs break?
Al imprimir i fuera del for, con continue verás que i llega al tope de la condición; con break, i queda en el primer valor donde se rompe.
#include <stdio.h>
int main() {
int i;
// continue: hace todas las iteraciones (0..29), pero no imprime dentro.
for (i = 0; i < 30; i++) {
continue;
printf("%d\n", i);
}
printf("valor de i con continue: %d\n", i); // imprime 30
// break: sale en la primera iteración.
for (i = 0; i < 30; i++) {
break;
printf("%d\n", i);
}
printf("valor de i con break: %d\n", i); // imprime 0
return 0;
}
¿Dónde puede y no puede usarse cada instrucción?
- continue: en for, while y do while. No en switch.
- break: en for, while, do while y también en switch.
¿Cuándo conviene usar continue en while, for o do while?
Aunque es menos común en C, continue es útil cuando quieres “saltar” casos específicos sin salirte del bucle. Evitas lógica extra innecesaria y mantienes el flujo simple.
- Filtrar negativos: omite imprimir u operar con números negativos.
- While infinito: si detectas un caso inválido, salta su procesamiento y sigue.
- Limpieza de flujo: reduce anidaciones de if y condicionales complejas.
¿Cómo saltar números negativos sin romper el bucle?
Coloca un if que detecte el caso y usa continue para avanzar a la siguiente iteración.
// Ejemplo de filtrado dentro de un bucle (entrada y fin omitidos a propósito).
int n;
while (/* condición de lectura */) {
// aquí obtienes n según tu programa
if (n < 0) {
continue; // salta negativos: no imprime ni procesa esta vuelta
}
printf("%d\n", n);
}
¿Qué habilidades y conceptos refuerzas aquí?
- Control de flujo: elegir entre continue y break según el objetivo.
- Iteración: entender qué se ejecuta y qué se omite en cada vuelta.
- Ámbito y estado: observar cómo cambia
ial finalizar un bucle. - Legibilidad: usar continue para simplificar condiciones y evitar código extra.
¿Tienes un caso donde continue simplifique tu bucle sin romperlo? Cuéntalo y comparte tu fragmento de código.