(Nota: En la versión 2016 del curso tienes una variante más reciente y más detallada de este apartado)
Podemos saltar alguna repetición de un bucle con la orden “continue”:
/*---------------------------*/
/* Ejemplo en C nº 34: */
/* C034.C */
/* */
/* "for" interrumpido con */
/* "continue" */
/* */
/* Curso de C, */
/* Nacho Cabanes */
/*---------------------------*/
#include
int main()
{
int i;
for (i=0; i<=10; i++)
{
if (i==5) continue;
printf("%d ", i);
}
return 0;
}
El resultado de este programa es:
0 1 2 3 4 6 7 8 9 10
En él podemos observar que no aparece el valor 5.
Ejercicio propuesto:
Ejercicios resueltos:
> ¿Qué escribiría en pantalla este fragmento de código?
for (i=1; i<4; i++) printf("%d", i);
Respuesta: los números del 1 al 3 (se empieza en 1 y se repite mientras sea menor que 4).
> ¿Qué escribiría en pantalla este fragmento de código?
for (i=1; i>4; i++) printf("%d", i);
Respuesta: no escribiría nada, porque la condición es falsa desde el principio.
> ¿Qué escribiría en pantalla este fragmento de código?
for (i=1; i<=4; i++); printf("%d", i);
Respuesta: escribe un 5, porque hay un punto y coma después del “for”, de modo que repite cuatro veces una orden vacía, y cuando termina, “i” ya tiene el valor 5.
> ¿Qué escribiría en pantalla este fragmento de código?
for (i=1; i<4; ) printf("%d", i);
Respuesta: escribe “1” continuamente, porque no aumentamos el valor de “i”, luego nunca se llegará a cumplir la condición de salida.
> ¿Qué escribiría en pantalla este fragmento de código?
for (i=1; ; i++) printf("%d", i);
Respuesta: escribe números continuamente, comenzando en uno y aumentando una unidad en cada pasada, pero si terminar nunca.
> ¿Qué escribiría en pantalla este fragmento de código?
for ( i= 0 ; i<= 4 ; i++) {
if ( i == 2 ) continue ; printf( "%d " , i); }
Respuesta: escribe los números del 0 al 4, excepto el 2.
> ¿Qué escribiría en pantalla este fragmento de código?
for ( i= 0 ; i<= 4 ; i++) {
if ( i == 2 ) break ; printf( "%d " , i); }
Respuesta: escribe los números 0 y 1 (interruumpe en el 2).
> ¿Qué escribiría en pantalla este fragmento de código?
for ( i= 0 ; i<= 4 ; i++) {
if ( i == 10 ) continue ; printf( "%d " , i); }
Respuesta: escribe los números del 0 al 4, porque la condición del “continue” nunca se llega a dar.
> ¿Qué escribiría en pantalla este fragmento de código?
for ( i= 0 ; i<= 4 ; i++)
if ( i == 2 ) continue ; printf( "%d " , i);
Respuesta: escribe 5, porque no hay llaves tras el “for”, luego sólo se repite la orden “if”.