Los for loops, es decir, los ciclos o bucles for, son un concepto básico de la mayoría de lenguajes de pro­gra­ma­ción. Se utilizan para ejecutar bloques de código de manera repetida. Hay distintas variantes de for loops en C++, pero todos funcionan de forma similar.

¿Cómo funcionan los ciclos for en C++?

El ciclo o bucle for es una de las es­tru­c­tu­ras de control más im­po­r­ta­n­tes de la pro­gra­ma­ción, ya que permite a los de­sa­rro­lla­do­res ejecutar bloques de código de­te­r­mi­na­dos varias veces. Es imposible ima­gi­nar­se un lenguaje de pro­gra­ma­ción iterativo sin estos ciclos, de hecho, hay ciclos for en Java así como en Python. Otros lenguajes de pro­gra­ma­ción, sobre todo los fu­n­cio­na­les, trabajan más con el concepto de la recursión que con los bucles.

Ciclos for en C++

Los ciclos for en C++ constan de tres elementos ese­n­cia­les:

  • Ini­cia­li­za­ción: aquí se ini­cia­li­za la variable del bucle, es decir, se le asigna un valor de inicio.
  • Estado: aquí se comprueba un estado. Siempre que el estado sea válido, se ejecutará el cuerpo del ciclo.
  • In­s­tru­c­ción: aquí puedes formular una orden o in­s­tru­c­ción. No­r­ma­l­me­n­te la variable de ciclo in­cre­me­n­ta­rá o di­s­mi­nui­rá.

Todos estos elementos se separan con punto y coma en el en­ca­be­za­do del bucle, por lo que se completan antes de que se ejecute el cuerpo real del bucle. Por ende, cuando se habla de C++ For Loops, suele decirse que son bucles dirigidos por el en­ca­be­za­do.

A co­n­ti­nua­ción, un ejemplo sencillo de ciclo for en C++ que muestra en pantalla los números del 0 al 5:

for (int i = 0; i <= 5; i++) {
	std:cout << i << std:endl;
}
C++

La primera línea del código de arriba contiene el en­ca­be­za­do del ciclo. Te ex­pli­ca­mos de nuevo los elementos de los que se compone un bucle for en C++:

  • Ini­cia­li­za­ción: con la orden “int i = 0” se crea una variable que se llama i y se le asigna el valor 0.
  • Estado: al indicar el estado “i <=5”, se establece que el bucle debe eje­cu­tar­se hasta que el valor de i supere el número 5.
  • In­s­tru­c­ción: en cada pasada del bucle (la llamada iteración), el valor de i se in­cre­me­n­ta en 1.

También es posible, por ejemplo, omitir el estado del ciclo for, en cuyo caso se asume que siempre se da ese estado y se crea un bucle infinito. Estos pueden ser útiles en ciertos casos y con una finalidad concreta. Sin embargo, cuando se está apre­n­die­n­do a usar C++ con fre­cue­n­cia se generan bucles infinitos por error, lo cual hace que el programa no se comporte como debe.

Foreach Loops en C++

Además de los bucles for que ya hemos me­n­cio­na­do, desde C++11, en C++ existe otra forma de bucle que también se indica con la palabra clave “for”. En otros lenguajes de pro­gra­ma­ción como PHP y C# o C++++, esas co­n­s­tru­c­cio­nes se conocen como bucles foreach. Con ellos puedes referirte có­mo­da­me­n­te a cualquier elemento de una es­tru­c­tu­ra de datos sin tener que recurrir a la in­de­xa­ción. Aquí también vale un ejemplo con números de 0 al 5:

int intArr[] = {0, 1, 2, 3, 4, 5};
for (int element: intArr) {
	std:cout << element << std:endl;
}
C++

Como ves, la es­tru­c­tu­ra del en­ca­be­za­do del bucle es distinta a la del primer ejemplo de código. En vez de tener tres elementos (ini­cia­li­za­ción, estado e in­s­tru­c­ción), este bucle solo se compone de dos elementos:

  • Elemento: aquí debes in­tro­du­cir el tipo de datos y el nombre de la variable.
  • Co­n­te­ne­dor: aquí debes indicar el co­n­te­ne­dor sobre el cual debe hacerse la iteración.

En este caso, primero se crea un array que contiene las cifras del 0 al 5. Entonces, dentro del bucle for se observa cada co­m­po­ne­n­te del array gracias a la variable llamada “element” y se muestra en la pantalla con el cuerpo del bucle.

Consejo

Usa el espacio web de IONOS para que todos tus programas C++ cobren vida en Internet. Además, las amplias opciones de copias de seguridad ga­ra­n­ti­zan que tus programas siempre estén pro­te­gi­dos frente a la pérdida de datos.

¿Para qué sirven los ciclos for en C++?

Los bucles for suelen uti­li­zar­se cuando se conoce de antemano la cantidad de rondas del bucle. Si por ejemplo quieres mostrar los múltiplos del 2 al 100, el for loop de C++ podría tener este aspecto:

for (int i = 2; i <= 100; i+=2) {
	std:cout << i << std:endl;
}
C++

También trabajan con los bucles for muchos al­go­ri­t­mos de cla­si­fi­ca­ción conocidos. Su ventaja principal frente a los bucles while es que su redacción es mucho más compacta. Aun así, puedes sustituir los ciclos for por ciclos while siempre que quieras.

La orden break: cómo in­te­rru­m­pir el bucle

Es posible que en algún momento quieras salir del bucle for antes de que acabe, por ejemplo, si quieres crear un bucle infinito que muestre en pantalla números enteros hasta que se alcance un número concreto de­te­r­mi­na­do por el usuario. Es más fácil de entender con este código ex­pli­ca­ti­vo:

int i = 0;
int datodelusuario = 0;
// El usuario indica una cantidad que se asigna a la variable datodelusuario
std::cin >> datodelusuario
for (;;) {
	std:cout << i << std:endl;
	++i;
	// El bucle se interrumpe cuando la variable es mayor al número introducido por el usuario
	if (i > datodelusuario) {
		break;
}
}
C++

La palabra clave que hace que se in­te­rru­m­pa el bucle en el código de arriba es break. Con break, el ciclo for de C++ se acaba in­me­dia­ta­me­n­te. El programa continúa eje­cu­tá­n­do­se después del bucle.

La orden continue: saltar la pasada del bucle

Evi­de­n­te­me­n­te, también es posible que no quieras in­te­rru­m­pir el bucle entero, sino saltar una única pasada del ciclo. Por ejemplo, imagina que quieres mostrar todos los números pares hasta el 100. Ahí podrías utilizar la siguiente co­n­s­tru­c­ción del ciclo:

for (int i = 0; i <= 100; i++) {
// Saltar a la siguiente iteración cuando el número sea impar
if (i % 2 == 1) {
		continue;
}
std:cout << i << std:endl;
}
C++

Te habrás fijado en la palabra clave “continue” que aparece en el ejemplo de código. Esta sirve para in­te­rru­m­pir la pasada actual del bucle y saltar a la siguiente ronda. La ventaja de esta orden es sobre todo que evita tener que hacer cálculos in­ne­ce­sa­rios, por lo que el programa es más eficiente.

Ir al menú principal