Cuando trabajas con bucles en C, no siempre quieres ejecutar todo el bloque de código en cada iteración. A veces necesitas saltar una ejecución específica sin romper el ciclo completo. Para eso existe la instrucción continue, una herramienta que complementa al break y que, aunque se usa con menos frecuencia, resuelve situaciones muy concretas de forma limpia y eficiente.
¿Qué hace exactamente la instrucción continue?
La instrucción continue forza la ejecución de la próxima iteración del bucle [0:05]. En lugar de sacarte del ciclo como lo haría un break, el continue simplemente le dice al programa: "sáltate lo que queda de código en esta iteración y pasa a la siguiente".
Es importante saber dónde puedes usarla:
- Se puede utilizar en ciclos for, while y do while.
- No se puede utilizar en switch [0:30].
- Si tienes un while o un for dentro de un switch, ahí sí puedes usar continue, porque pertenece al ciclo interno, no al switch.
Cada estructura tiene sus propias llaves y su propio bloque de código. El continue actúa sobre el bucle más cercano que lo contiene.
¿Qué pasa cuando colocas continue dentro de un for?
Para entender su comportamiento, imagina un ciclo for que itera de 0 a 29 e imprime el valor de i en cada vuelta [1:06]. Sin continue, obtienes treinta impresiones normales.
¿Por qué la salida queda vacía con continue?
Si colocas un continue; justo antes del printf, el resultado es que no se imprime absolutamente nada [1:30]. Esto ocurre porque en cada iteración el continue obliga al bucle a saltar directamente a la siguiente vuelta, ignorando el código que viene después.
El bucle sí ejecutó las treinta iteraciones, pero nunca llegó a la línea de impresión.
¿Cuál es la diferencia clara entre continue y break?
Para visualizar la diferencia, basta con imprimir el valor de i fuera del bucle después de que este termina [2:28]:
- Con continue: el valor de
i al salir es 30, porque el ciclo completó sus treinta iteraciones normalmente. Solo se saltó el código interno en cada una.
- Con break: el valor de
i al salir es 0, porque el ciclo se rompió en la primera iteración y nunca avanzó [3:10].
En resumen, break rompe el bucle y lo abandona. Continue salta el resto del código de la iteración actual pero el bucle sigue ejecutándose hasta cumplir su condición.
¿Cuándo conviene usar continue en un programa real?
Aunque es una instrucción poco frecuente incluso para programadores con años de experiencia en C [3:30], tiene casos de uso muy prácticos:
- Filtrar números negativos: si tienes un ciclo que procesa datos y no quieres operar con valores negativos, puedes usar un
if que detecte el negativo y ejecute un continue para saltar esa iteración [3:45].
- Bucles infinitos con condiciones específicas: en un
while infinito donde no deseas realizar operaciones con ciertos valores, el continue te permite hacer el skip de una sola ejecución sin salir del bucle ni escribir código adicional para manejar esa excepción [4:05].
El patrón general es sencillo:
c
for (int i = 0; i < 30; i++) {
if (condicion_a_saltar) {
continue;
}
printf("Valor actual de i: %d\n", i);
}
Con esta estructura, cada vez que condicion_a_saltar sea verdadera, el printf no se ejecuta y el ciclo avanza a la siguiente iteración de forma natural.
La instrucción continue es una de esas herramientas que no usarás todos los días, pero cuando la necesites, te ahorrará líneas de código y hará tu lógica mucho más legible. Si tienes dudas sobre cuándo aplicarla frente a un break o una reestructuración del if, comparte tu caso en los comentarios.