Búsqueda personalizada
Curso de lenguaje C
 Principal
 Inicio
 Libros
 Librerías
 Mapa Web
 
 Recursos
 Artículos
 Cursos
 Ejercicios
 Guías de uso
 Mini Diccionario 
  
 Sintaxis
 ANSI C
 Ordinogramas
 Pascal
 Pseudocódigo 
  
 Acerca de
 Carlos Pes
 Mi Blog 
  
 Sitios Amigos
 Casas Rurales
 Directorio Web

 
[más enlaces] 
  
 Contenidos > 4.2 Instrucción continue
En lenguaje C, para escribir una instrucción de salto continue (continuar) , se utiliza la sintaxis:


   continue;
 

La instrucción de salto continue siempre se usa para interrumpir (romper) la ejecución normal de un 
bucle. Sin embargo, el control del programa no se transfiere a la primera instrucción después del bucle (como sí hace la instrucción break, véase el apartado anterior), es decir, el bucle no finaliza, sino que, finaliza la iteración en curso, transfiriéndose el control del programa a la condición de salida del bucle, para decidir si se debe realizar una nueva iteración o no.

Por tanto, la instrucción continue finaliza (termina) la ejecución de una iteración de un bucle, pero, no la ejecución del bucle en sí. De forma que, la instrucción continue salta (no ejecuta) las instrucciones que existan después de ella, en la iteración de un bucle.


Ejemplo 1: En el programa siguiente se muestra como se puede utilizar la instrucción continue:

#include <stdio.h>

int main()
{

   int n, a;

   a = 0;
   do
   {
     printf( "Introduzca un numero entero: " );
     scanf( "%d", &n );

     if ( n == 0 )
     {
      printf( "ERROR: El cero no tiene opuesto.\n" );
      continue;
      /* En el caso de que n sea un cero,
         la iteración en curso del bucle
         se interrumpe aquí. */
     }
     printf( "El opuesto es: %d\n", -n );
     a += n;
   } while ( n >= -10 && n <= 10 );

   printf( "Suma: %d", a );


   return 0;
}


El código del programa es el mismo que el del ejemplo 1 del apartado anterior, 4.1 Instruccion break, excepto por la instrucción break, que ha sido sustituida por la instrucción continue. El programa puede ser la solución para el problema siguiente, el cual se diferencia del ejemplo 1 del apartado anterior en que si el 
usuario introduce un cero, el bucle no deja de iterar.

Diseñe el agoritmo de un programa que:

1º) Pida por teclado un número (dato entero).
2º) Si el número introducido por el usuario es distinto de cero, muestre por pantalla el mensaje:
  • "El opuesto  es: <-número>".
En caso contrario, muestre el mensaje:
  • "ERROR: El cero no tiene opuesto.".
3º) Repita los pasos 1º y 2º, mientras que, el usuario introduzca un número mayor o igual que -10 y menor o igual que 10.
4º) Muestre por pantalla la suma de los números introducidos por el usuario.

En pantalla:


   Introduzca un número entero: 2

   El opuesto es: -2


   Introduzca un número entero: 0

   ERROR: El cero no tiene opuesto.


   Introduzca un número entero: -59

   El opuesto es: 59


   Suma: -57

 

La traza del programa es:

 
Secuencia:
 
Acción (instrucción):
Valor de:
a n
1 a = 0 0 ?
Inicio de la iteración 1.
2 printf( "Introduzca un número entero:" ) 0 ?
3 scanf( "%d",n ) 0 2
4 (Comprobar si = 0) 0 2
La condición de la alternativa simple (if) es falsa.
5 printf( "El opuesto es: %d\n", -n ) 0 2
6 a += n 2 2
Fin de la iteración 1.
7 (Comprobar si >= -10 y n <= 10) 2 2
La condición del bucle (do...while) es verdadera.
Inicio de la iteración 2.
8 printf( "Introduzca un número entero:" ) 2 2
9 scanf( "%d",n ) 2 0
10 (Comprobar si = 0) 2 0
La condición de la alternativa simple (if) es verdadera.
11 printf( "ERROR: El cero no tiene opuesto." ) 2 0
12 continue 2 0
La 2ª iteración se interrumpe (finaliza) aquí.
El control del programa se transfiere (salta) a la
 condición de salida del bucle
(do...while).
13 (Comprobar si >= -10 y n <= 10) 2 0
La condición del bucle (do...while) es verdadera.
Inicio de la iteración 3.
14 printf( "Introduzca un número entero:" ) 2 0
15 scanf( "%d",n ) 2 -59
16 (Comprobar si = 0) 2 -59
La condición de la alternativa simple (if) es falsa.
17 printf( "El opuesto es: %d\n", -n ) 2 -59
18 a += n -57 -59
Fin de la iteración 3.
19 (Comprobar si >= -10 y n <= 10) -57 -59
La condición del bucle (do...while) es falsa.
El bucle finaliza después de 3 iteración.
20 printf( "Suma: %d", a ) -57 -59

Figura. Traza del ejemplo 1.

La instrucción continue se ejecuta cuando el usuario introduce un cero, interrumpiendo la iteración en curso; pero, el bucle solamente finaliza cuando la condición ( 
>= -10 y n <= 10 ) sea falsa.

Normalmente, al igual que ocurre con la instrucción break, cuando en un bucle se utiliza una instrucción continue, la ejecución de ésta también se condiciona.

En el ejemplo 1, la iteración en curso del bucle se interrumpe si es verdadera la condición ( 
= 0 ).

Ejemplo 2: No obstante, el problema también se puede resolver sin hacer uso de la instrucción continue:

#include <stdio.h>

int main()
{

   int numero, acumulador;

   acumulador = 0;
   do
   {
     printf( "Introduzca un numero entero: " );
     scanf( "%d", &numero );

     if ( numero == 0 )
     {
      printf( "ERROR: El cero no tiene opuesto.\n" );
     }
     else
     {
      printf( "El opuesto es: %d\n", -numero );
      acumulador += numero;
     }

   } while ( numero >= -10 && numero <= 10 );

   printf( "Suma: %d", acumulador );


   return 0;
}


Los resultados por pantalla de este programa son idénticos a los del algoritmo anterior.
 Más información
Texto extraído del libro DOMINE LA PROGRAMACIÓN EN LENGUAJE C.
 Contenidos > Apartado siguiente
4.3 Instrucción goto
Búsqueda personalizada
 A destacar
Cursos Ejercicios Libros Enlaces Recomendados
Curso Diseño de Algoritmos
Curso Informática Básica
Curso Ingeniería del Software
Curso Marketing en Internet
Curso Lenguaje C
Curso Turbo Pascal
Curso Representación Datos
Ejercicios de Algoritmos
Ejercicios de Lenguaje C
Ejercicios de Ordinogramas
Ejercicios de Pascal
Empezar de cero a programar en lenguaje C
Domine la programación en lenguaje C
Empezar de cero a programar en Pascal
Tutoriales y Cursos
Gane dinero con su web
Comprar dominio
Programación Informática
100% Adsense
 Secciones
Inicio Libros Librerías Mapa Web Artículos Cursos Ejercicios Guías de uso Mini Diccionario Enlaces Carlos Pes Mi Blog
© Carlos Javier Pes Rivas, 2006-2008
Política de privacidad - Contactar