Estructuras repetitivas
Este tipo de estructuras son parte integral de cualquier lenguaje de programación, ya que se utiliza cuando se quiere que un mismo conjunto de instrucciones se ejecuten un cierto número de veces. Osease, son útiles cuando se quiere hacer la misma operación una y otra vez durante un tiempo determinado, o hasta que alguna condición cambie.
Lo interesante de las estructuras repetitivas es que son eficientes, ya que al reducir tareas complejas a algo tan sencillo como esto, no solo se ahorra código, sino también facilita la solución al problema.
Tenemos dos tipos de estructuras repetitivas: La primera es en donde se sabe el número de veces que se va a ejecutar, el segundo es cuando el número de veces de ejecución es indefinido. Para ambos casos, se han diseñado las siguientes estructuras repetitivas o cíclicas:
For (desde o para)
Este ejecuta las acciones del cuerpo o bucle un número especificado de veces y de modo automático.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream.h> int main() { int counter; for(counter = 0; counter < 5; counter++) { cout << "Looping! "; } cout << "\nCounter: " << counter << ".\n"; return 0; } |
While (mientras – verdadero)
Repite el cuerpo del bucle mientras la condición determinada sea verdadera.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream.h> int main() { int counter = 0; while(true) { counter ++; if(counter > 10) break; } cout << "Counter: " << counter << "\n"; return 0; } |
Do- while (repetir-hasta que)
La estructura repetir cumple la misma función que la estructura mientras. La diferencia está en que la estructura mientras comprueba la condición al inicio y repetir lo hace al final. Es por ello la estructura repetir se ejecuta por lo menos una vez.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream.h> int main() { int counter; cout << "How many hellos? "; cin >> counter; do { cout << "Hello\n"; counter--; } while(counter > 0); cout << "Counter is: " << counter << endl; return 0; } |
Break y Continue
Hay dos palabras reservadas que pueden ayudar a mejorar las estructuras repetitivas: break y continue.
Break obliga a que el ciclo se rompa aunque la condición lógica no se haya cumplido.
Continue obliga a que un ciclo vuelva a iterarse. Es preferible que se trate de evitar el uso de break a menos que sea absolutamente necesario, ya que puede causar conflictos y es difícil de debuggear.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <iostream.h> int main() { unsigned short small; unsigned long large; unsigned long skip; unsigned long target; const unsigned short MAXSMALL=65535; cout << "Enter a small number: "; cin >> small; cout << "Enter a large number: "; cin >> large; cout << "Enter a skip number: "; cin >> skip; cout << "Enter a target number: "; cin >> target; cout << "\n"; // set up 3 stop conditions for the loop while(small < large && large > 0 && small < MAXSMALL) { small++; if (small % skip == 0) // skip the decrement? { cout << "skipping on " << small << endl; continue; } if (large == target) // exact match for the target? { cout << "Target reached!"; break; } large-=2; } // end of while loop cout << "\nSmall: " << small << " Large: " << large << endl; return 0; } |
Como mencioné anteriormente, estas estructuras repetitivas ayudan a ahorrar mucho código y encontrar soluciones más sencillas, en especial cuando hay que repetir un proceso demasiadas veces.
Oscar Alfredo Flores Solano liked this on Facebook.
Ángel Rubio liked this on Facebook.
Abel OA liked this on Facebook.