Está en la página 1de 3

Buenos dias alumnos, para esta clase vamos a ver 2 sentencias que si bien son simples,

cumplen un roll que resultara de gran utilidad en la completitud de los programas.

La primer sentencia es Continue:

La sentencia continue obliga a ejecutar la siguiente iteracin en el bucle correspondiente a


la sentencia while, do, o for, en el que est contenida. Su sintaxis es:

continue;

Como ejemplo, vea el siguiente programa que imprime todos los nmeros entre 1 y 100 que
no sean mltiplos de 5.

#include <stdio.h>
void main()
{
int n;
for (n = 0; n <= 100; n++)
{
if (n % 5 == 0) /*si n es mltiplo de 5, siguiente iteracin*/
continue;
printf("%d ", n);
}
}

Ejecute este programa y observe que cada vez que se ejecuta la sentencia continue, se inicia
la ejecucin del bloque de sentencias de for para un nuevo valor de n.

La segunda sentencia de la clase de hoy es goto:

La sentencia goto transfiere el control a una lnea especfica del programa, identificada por
una etiqueta. Su sintaxis es la siguiente:

goto etiqueta;
.
.
.
etiqueta: sentencia;
Si la lnea a la que se transfiere el control es una sentencia ejecutable, se ejecuta esa
sentencia y las que le siguen. Si no es ejecutable, la ejecucin se inicia en la primera
sentencia ejecutable que se encuentre a continuacin de dicha lnea.

No se puede transferir el control fuera del cuerpo de la funcin en la que nos encontramos.
Un uso abusivo de esta sentencia da lugar a programas difciles de interpretar y de
mantener. Por ello, en programacin estructurada, se utiliza solamente en ocasiones
excepcionales. La funcin que desempea una sentencia goto, puede suplirse utilizando las
sentencias if...else, do, for, switch, while.

El uso ms normal consiste en abandonar la ejecucin de alguna estructura profundamente


anidada, cosa que no puede hacerse mediante la sentencia break, ya que sta se limita
nicamente a un solo nivel de anidamiento.

Por ejemplo:

#include <stdio.h>
#define K 8
void main()
{
int f, c, n;
printf("Valor de n: ");
scanf("%d", &n);

for (f = 0; f < K; f++)


{
for (c = 0; c < K; c++)
{
if (f*c > n) goto salir;
}
}
salir:
if (f <K && c < K)
printf("(%d, %d)n", f, c);
}

El siguiente ejemplo muestra cmo se utiliza la sentencia for. Consta de dos bucles for
anidados. En el bucle interior hay una sentencia goto que se ejecutar si se cumple la
condicin especificada. Si se ejecuta la sentencia goto el control es transferido a la primera
sentencia ejecutable que haya a continuacin de la etiqueta salir.

EJERCICIOS:

Continue 1) Realizar un programa que comienze un contador de vueltas, que muestre por
pantalla la frase "Comenzando la vuelta: " (numero de vuelta) y ademas que muestre una
vez que termine el ciclo for para cada bucle la frase " Terminada esta vuelta", excepto por la
vuelta 8, que la muestre y continue.

Continue 2) Realizar un programa que enumere desde el 1 al 10 y que saltee el numero 5, y


lo muestre por pantalla.

GoTo 1) Realizar un programa que muestre por pantalla "Proceso numero 1 del programa"
como texto, saltee con goto el Proceso numero 2 y muestre el proceso 3 y 4.

#include<stdio.h>