23. C++ || Estructuras de control

Una de las cosas muy importante en C++ a la hora de utilizar ciclos, es la implementación de una forma para culminar con él, es decir, para que nuestro bucle no se convierta en un bucle infinito. Para ello se han creado formas que nos ayudan a solventar este problema, en esta última entrada de los ciclos en C++ vamos a estudiar diferentes maneras de terminar correctamente un bucle.

  1. Bucles controlados por contadores.
  2. Bucles controlados por centinelas.
  3. Bucles controlados por banderas.
  4. Preguntas antes de iterar.





Bucles controlados por contadores en C++


En C++ un bucle controlado por una variable contador, es cualquier bucle que determina la cantidad de iteraciones que va a tener antes de empezar a hacerlo y a continuación repite el cuerpo del bucle esa cantidad de veces. Por ejemplo:

for(int i = 1; i <= 100; i++)
 { cout << i << endl; }

Este bucle for está controlado por la variable contador i, esta va a ir creciendo por cada repetición y el bucle acaba cuando i sea mayor que 100, con esto podemos concluir que nosotros sabemos cuántas repeticiones va a tener este bucle, 100. A esto se le llama bucle controlado por un contador.

Bucles controlados por centinelas en C++


Si no se tiene conocimientos de cuántas veces se va a repetir el ciclo, podemos dar la opción de que sea el usuario quien determine cuándo finalizar. Un centinela es un número que no puede introducirse como dato en el programa y sólo sirve para terminar un bucle, por ejemplo:

//valor del centinela 
const int centinela = -1;
cout<<"Introduzca la primera nota: "; cin>> nota;
while (nota != centinela)
{
 suma += nota;
 cout<<"Introduzca la sigiente nota: "; 
 cin>>nota;
}

Aquí el centinela tiene el valor -1. A la hora de usar un centinela para finalizar un bucle se debe tener mucho cuidado, siempre debe ser un número que no pueda introducirse en el programa. En el ejemplo anterior lo que ocurre es que -1 jamás será una nota, al momento de introducir ese valor, el bucle va a finalizar.

Bucles controlados por banderas en C++


Los bucles controlados por banderas por lo general son del tipo bool, casi siempre se inicializan a falso antes de entrar en el bucle, dentro de él, su valor va a cambiar por alguna acción específica creando el fin del bucle. Por ejemplo:

bool bandera = false;
int num;
while(!bandera)
{
 cout<<"Introduzca un numero: "; cin>> num;
  cin>> num;
  if (num == 7)
  { bandera = true; }
}

Preguntar antes de iterar


Esta forma es similar a los bucles controladores por contadores, antes de ingresar al bucle se le va a preguntar al usuario cuántas repeticiones quiere realizar, un ejemplo de ellos será lo siguiente:

int n, nota, suma = 0;

cout<<"Cuantas notas quiere registrar?"<<endl;
cin>> n;

for (int j = 1; j <= n; j++)
{
 cout<<"Introduzca la sigiente nota: "; cin>>nota;
 cin>>nota;
 suma += nota;
}

Estás han sido diferentes maneras de terminar un bucle de manera correcta en C++, cada una se adapta a un caso específico, así que será tu decisión saber cuál utilizar según sean tus necesidades.


No hay comentarios