Aprende Programación
Menú

Estructuras de repetición

Las iteraciones, mejor conocidas como bucles son un tipo de estructura muy útiles en programación, consisten en hacer que una instrucción o bloque de instrucciones se repita constantemente, hasta llegar a un fin que hayamos definido, ésta ultima parte es muy importante ya que sí, no establecemos bien la condición para qué en un determinado momento el bucle se detenga, obtendremos lo que se conoce como un "bucle infinito" y nuestro programa no funcionará de forma correcta.

Por ejemplo, si queremos que nuestro programa muestre el mensaje "Hola, buenos días" 10 veces, lo que haríamos en nuestro algoritmo seria algo así:

0- Inicio
 1- Escribir "Hola, buenos días";
 2- Escribir "Hola, buenos días";
 3- Escribir "Hola, buenos días";
 4- Escribir "Hola, buenos días";
 5- Escribir "Hola, buenos días";
 6- Escribir "Hola, buenos días";
 7- Escribir "Hola, buenos días";
 8- Escribir "Hola, buenos días";
 9- Escribir "Hola, buenos días";
 10- Escribir "Hola, buenos días";
11- Fin
  
Sencillamente copiamos y pegamos lo mismo varias veces, pero a nivel de código y programación en general, esto es muy poco eficiente, imagínate si necesitamos que el mensaje se muestre mil veces o más. Para eso sirven las estructuras de repetición y en este caso se utilizan así:
0-Inicio
  1-Declarar i;
  2-Repita para (i=1; i<=10; i++)
    2.1 Escribir "Hola, buenos días";
  3- Fin del Repita;
4-Fin;
Mucho más corto y sencillo, incluso si necesitamos que se repita mil veces tan solo bastaría con cambiar el 10 por 1000.

También podemos apreciar un principio de la programación y es el automatizar los procesos de manera que la computadora haga el mayor trabajo por nosotros.

Existen 3 tipos de estructuras de repetición:

Las estructuras serán escritas en código C++ un lenguaje de programación muy popular derivado de C.

Repita Para (for): Fue la estructura utilizada en el ejemplo anterior.
#include <iostream>
                using namespace std;
                int main() {
                for (int i=1;i<=10;i++){
                //Bloque de instrucciones;
                }
                }
                
Primero se declara una variable de control que usualmente se le llama "i", luego dentro de los parámetros del bucle se le asigna un número, se establece la condición y se incrementa o decrementa la variable en tantas unidades como sea necesario, después dentro de los corchetes escribimos las instrucciones. En el ejemplo se le asigna el número 1 a la variable "i", la condición establece que el bloque de instrucciones de repetirá cuando el valor de "i" sea menor o igual a 10 e "i" irá incrementando una unidad en cada repetición, de manera que cuando la variable "i" valga 11 ya no se ejecutará y nuestro programa finalizará.
#include <iostream>
           using namespace std;
           int main() {
           for (int i=1;i<=10;i++){
           cout<<"Hola buenos dias"<< i+0 << endl;
           }
           }
                
La estructura Repita para, es las más utilizada para realizar bucles cuya cantidad de repeticiones conocemos de antemano como programadores, a diferencia de las estructuras Repita Mientras y Repita Hasta, que son de gran ayuda para cuando no sabemos cuantas repeticiones hará el bucle.

Repita Mientras (while): Esta estructura tan solo tiene un parámetro, la "condición" que se evalúa al inicio de cada repetición al igual que el Repita para.
while (condición)
{
  //Bloque de instrucciones
}

Por ejemplo un programa que pida un número repetidas veces y
tan solo sí ese número es 0 el bucle finaliza, luciría entonces así:

int n=0;
cout<<"Introduzca un número: "<< endl;
cin>>n;
while (n!=0)
{
   cout<<"Introduzca un número: "<< endl;
   cin>>n;
}
Primero se declara la variable que guardará el número por ejemplo "n" y luego se pide que se introduzca dicho número , la condición establece qué el bucle se ejecutará mientras que el valor de "n" sea distinto de 0, la instrucción adentro pide un número y este se guardará en "n" entonces la condición vuelve a ser evaluada y así seguirá hasta que se introduzca 0.

Repita Hasta (do... while): Esta estructura es muy parecida a la anterior, ya que solo tiene un parámetro (la condición), la diferencia está en que dicha condición se evalúa al final del bucle, lo cual permite que aunque la condición no se cumpla, el bloque de instrucciones se ejecutará al menos una vez.
do
{
  //Bloque de instrucciones
}
while (condición)

Esta estructura es útil en ciertos casos para no tener que repetir
lineas de código, comparemos éste ejemplo con el anterior:
int n;
do
{
  cout<<"Introduzca un número: "<< endl;
  cin>>n;
}
while (n!=0)
            
Como podemos apreciar en el ejemplo anterior (Repita Mientras), primero se pide un número para poder evaluar la condición y así entrar o no en el bucle y luego se volvía a pedir el número dentro del bucle, pero con la estructura (Repita Hasta) no es necesario ya que entramos directamente al bucle sin importar el valor de "n", se pide el número y al final se evalúa la condición.

En resumen podemos afirmar que la estructura Repita Para (for) es la mejor en la mayoría de casos para cuando conocemos cuantas veces se debe repetir el bucle, y las estructuras Repita Mientras (while) y Repita Hasta (do... while) para cuando lo desconocemos como programadores, aún así podemos lograr que éstas dos ultimas estructuras se comporten como la Primera, de la siguiente forma, por ejemplo:
Repita Para (for):
int i; //Declaración
for (i=1;i<=10;i++) //Asignación, Condición, Incremento
{
  //Bloque de instrucciones
}

Repita Mientras (while):
int i=1; //Declaración y Asignación
while (i<=10) //Condición
{
  //Bloque de instrucciones
  i++; //Incremento
}

Repita Hasta (do... while):
int i=0; //Declaración y Asignación
do
{
i++; //Incremento
//Bloque de instrucciones
}
while(i<=10) //Condición
           
Aqui te mostraremos un ejemplo del repita para(for), donde podras observar el algoritmo, codigo y prueba del siguien progrma:

Realizar un programa donde repita buenos días las veces que el usuario indique y muestre el número de repeticiones.
0-Inicio
  2-Declarar n,i;
  3-Escrbir "Introduzca cualquier numero: ";
  4-Leer= n;
  5-Repita para(i=1; i<=n; i++)
    {
    5.1-Escribir "Hola, Buenos días. Se repitio ",i," veces.";
    }
6-Fin;
            
#include  <iostream>
  using namespace std;
  int main(){
   int n,i;
  cout<<"Indique el primer numero"<< endl;
  cin>>n;
  for (i=1;i<=n;i++){
      cout<<"Hola buenos días. Se repitio"<< i+0 <<" veces."<< endl;
  }
}
            

Aqui te mostraremos un ejemplo del repita mientras(while), donde podras observar el algoritmo, codigo y prueba del siguien progrma:

Igual que el anterior realizaremos un programa donde repita buenos días las veces que el usuario indique y muestre el número de repeticiones, pero esta vez con repita mientras(while).
0-Inicio
  2-Declarar n,i=1;
  3-Escrbir "Introduzca cualquier numero: ";
  4-Leer= n;
  5-Repita mientras(i>n)
    {
    5.1-Escribir "Hola, Buenos días. Se repitio ",i," veces.";
    5.2-i++;
    }
6-Fin;
            
#include  <iostream>
  using namespace std;
  int main(){
  int n,i=1;
  cout<<"Indique el primer numero"<< endl;
  cin>>n;
  while (i>=n){
      cout<<"Hola buenos dias "<< i << endl;
      i++;
  }
}
            

Aqui te mostraremos un ejemplo del repita hasta(do-while), donde podras observar el algoritmo, codigo y prueba del siguien progrma:

Realizar un programa que pida un número repetidas veces y tan solo sí ese número es 0 el bucle finaliza.
0-Inicio
  1-Declarar n;
  2-Repita
    {
      2.1-Escrbir "Introduzca cualquier numero: ";
      2.2-Leer= n;
    }
  4-Hasta(n!=0);
6-Fin;
            
#include  <iostream>
  using namespace std;
  int main(){
   int n;
   do
   {
     cout<<"Introduzca un numero: "<< endl;
     cin>>n;
   }
   while (n!=0);
}