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";