|
|
|
|
|
|
CarlosPes.com
> Curso
de Lenguaje C
> Instrucción continue en Lenguaje C |
|
Instrucción continue
en
Lenguaje C
|
|
|
|
|
¿Para qué
sirve la instrucción continue en
C?
|
|
En
lenguaje C, para escribir una instrucción
de salto continue (continuar), se utiliza la sintaxis: |
|
|
|
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 Instrucción
break en C), 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, Instrucción break en C, 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: |
|
|
|
|
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 ( 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 ( 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. |
|
|
|
|
|
|
|
|