Sencilla explicación de C++ for loop
Los for loops, es decir, los ciclos o bucles for, son un concepto básico de la mayoría de lenguajes de programació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 estructuras de control más importantes de la programación, ya que permite a los desarrolladores ejecutar bloques de código determinados varias veces. Es imposible imaginarse un lenguaje de programación iterativo sin estos ciclos, de hecho, hay ciclos for en Java así como en Python. Otros lenguajes de programación, sobre todo los funcionales, 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 esenciales:
- Inicialización: aquí se inicializa 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.
- Instrucción: aquí puedes formular una orden o instrucción. Normalmente la variable de ciclo incrementará o disminuirá.
Todos estos elementos se separan con punto y coma en el encabezado 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 encabezado.
A continuació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 encabezado del ciclo. Te explicamos de nuevo los elementos de los que se compone un bucle for en C++:
- Inicializació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 ejecutarse hasta que el valor de i supere el número 5.
- Instrucción: en cada pasada del bucle (la llamada iteración), el valor de i se incrementa 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á aprendiendo a usar C++ con frecuencia 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 mencionado, desde C++11, en C++ existe otra forma de bucle que también se indica con la palabra clave “for”. En otros lenguajes de programación como PHP y C# o C++++, esas construcciones se conocen como bucles foreach. Con ellos puedes referirte cómodamente a cualquier elemento de una estructura de datos sin tener que recurrir a la indexació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 estructura del encabezado del bucle es distinta a la del primer ejemplo de código. En vez de tener tres elementos (inicialización, estado e instrucción), este bucle solo se compone de dos elementos:
- Elemento: aquí debes introducir el tipo de datos y el nombre de la variable.
- Contenedor: aquí debes indicar el contenedor 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 componente del array gracias a la variable llamada “element” y se muestra en la pantalla con el cuerpo del bucle.
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 garantizan que tus programas siempre estén protegidos frente a la pérdida de datos.
¿Para qué sirven los ciclos for en C++?
Los bucles for suelen utilizarse 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 algoritmos de clasificació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 interrumpir 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 determinado por el usuario. Es más fácil de entender con este código explicativo:
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 interrumpa el bucle en el código de arriba es break. Con break, el ciclo for de C++ se acaba inmediatamente. El programa continúa ejecutándose después del bucle.
La orden continue: saltar la pasada del bucle
Evidentemente, también es posible que no quieras interrumpir 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 construcció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 interrumpir 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 innecesarios, por lo que el programa es más eficiente.