Sunteți pe pagina 1din 18

Universidad Autónoma de Yucatán

Facultad de Ingeniería

Programación Estructurada

Dra. Karla Cantún


Febrero, 2014
Control de flujo de ejecución

En C + + las instrucciones de control de flujo de


ejecución sirven para especificar lo que se
tiene que hacer al ejecutar nuestro programa,
especificando cuándo y en qué circunstancias.
Recordemos que los programas pueden o no
limitarse a la ejecución de una secuencia lineal de
instrucciones.

Durante su proceso, un programa puede repetir


segmentos de código, o tomar decisiones y
bifurcar entre ellas, en caso de emplearse alguna
secuencia de decisión, que son operaciones
típicas, empleadas frecuente en todos los
lenguajes de programación.
Bucles
Otra operación típica, es el empleo de bucles.
Un bucle es una sección de código que se ejecuta
muchas veces hasta que se cumple alguna
condición de terminación.
Se pueden realizar operaciones de bucles con las
siguientes sentencias:
• while;
• do-while;
• for.
Bucles…
Un bucle se utiliza para repetir una sección o
bloque de código.
Esto es, se ejecuta el bloque en cuestión las
veces necesarias hasta que se cumpla alguna
condición de terminación.
Hay tres tipos de bucles o “loops”:
for, while y do-while
Tipo de bucle Descripción
while Repite una instrucción o grupo de instrucciones mientras una
condición dada es verdadera. Pone a prueba la condición antes
de ejecutar el cuerpo del bucle.
for Ejecutar una secuencia de sentencias múltiples veces y abrevia
el código que maneja la variable de bucle
do-while Como una la declaración while, excepto que la condición se
prueba al final del cuerpo del bucle
Bucles anidados Pueden utilizarse uno o más de bucle dentro de cualquier otro:
while, for ó do .. while.
Sentencias de control de bucle
Sentencias de control de bucle cambian
ejecución de su secuencia normal. Cuando la
ejecución sale de un bloque de instrucciones,
se destruyen todos los objetos automáticos
que se crearon en ese ámbito.
C + + es compatible con las siguientes sentencias
de control
Instrucciones de control Descripción
break Termina el bucle o declaración switch y transfiere la
ejecución a la instrucción que sigue inmediatamente al
loop ó switch.
continue Obliga a que la próxima iteración del bucle que tenga
lugar, saltándose cualquier código en el medio.
goto Transfiere el control a la instrucción con etiqueta
referenciada. (Aunque no se aconseja el uso de goto )
While loop
Ejecuta repetidamente un bloque del código,
siempre y cuando la condición establecida sea
verdadera.
Sintaxis
while(condition)
{
statement(s);
}
Aquí, punto clave del bucle while es que el bucle
podría no llegar nunca.
Cuando la condición es puesta a prueba y el
resultado es falso, el cuerpo del bucle se
omite y se ejecutará la primera instrucción
después del bucle while .
For loop
Es una estructura de control de repetición que
permite escribir un loop que necesite
ejecutarse un número específico de veces.
Sintaxis

for ( init; condition; increment )


{
statement(s);
}
• El paso init se ejecuta en primer lugar y sólo una vez.
Éste permite declarar e inicializar las variables control
de bucle. No es necesario que ponga aquí una
declaración si se escribe (;)
• La condición se evalúa. Si es verdadera, el cuerpo del
bucle se ejecuta; si no, el cuerpo del bucle no se
ejecuta y el flujo de control pasa a la siguiente
instrucción justo después del bucle for.
• Después de que el cuerpo del bucle for se ejecuta, el
flujo de control salta a la instrucción de incremento.
Ésta permite actualizar las variables de control.
La condición evalúa de nuevo. Si es verdadera,
el bucle se ejecuta y el proceso se repite
(cuerpo del bucle, seguido por el incremento y
seguido la eveluación de la condición).
Cuando la condición se convierte en falsa, el
bucle for termina.
Do-While loop
Comprueba la condición en la parte inferior. Un
bucle do...while garantiza ejecutar al menos
una vez el cuerpo del bucle.
Sintaxis
do {
statement(s);
}while( condition );
break;
Cuando la instrucción break se
encuentra dentro de un bucle, el
bucle termina inmediatamente y el
programa se reanuda en la
siguiente instrucción del bucle. Se
puede utilizar para poner fin a un
caso en la instrucción switch.

Si está utilizando bucles anidados, la


instrucción break se detendrá la
ejecución del bucle más interior y
empezar a realizar la siguiente
línea de código después del
bloque.
continue;
La instrucción continue obliga a
que la siguiente iteración del
bucle se ejecute, omitiendo
cualquier código entre ellos.

Para el bucle for, obliga a que sea


probado el condicional y que
se realice el incremento del
bucle. Para el bucle while y
do...while, la ejecución del
programa pasa a la prueba del
condicional.
goto label;

label: statement;

Proporciona un salto incondicional


desde el goto hasta la instrucción
etiquetada en la misma función.

NOTA: El uso de instrucción goto es


poco recomendable, porque se hace
difícil seguir el flujo de ejecución del
programa, por lo que se dificulta de
entenderlo y modificarlo. Por lo
anterior se recomienda que cualquier
programa que utilize un goto sea
reescrito para que no necesite dicha
instrucción.
Un buen uso para el goto es
salir de una rutina muy for(...)
{
anidada, ejemplo: for(...)
{
while(...)
{
Eliminar el goto implicaría if(...) goto stop;
.
que una serie de pruebas .
adicionales se realizaran. .
}
La instrucción break no }
}
funcionaría aquí, porque
sólo haría que el programa stop: cout << "Error in program.\n";

salga del bucle interior.

S-ar putea să vă placă și