AnteriorPosterior

3.4. Sentencia continue: fuerza la siguiente iteración

  Curso: Fundamentos de programación en C, por Nacho Cabanes

3.4. Sentencia continue: fuerza la siguiente iteración

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 <stdio.h>
 
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:

  • Crear un programa que pida un número al usuario (entre 1 y 20) y muestre los números el 1 al 20, excepto el indicado por el usuario, usando "continue" para evitar ese valor.

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”.

Actualizado el: 23-07-2014 15:18

AnteriorPosterior