Ciclo for en C++. Estructura, sintaxis y uso de un ciclo for en C++

Los ciclos for son lo que se conoce como estructuras de control de flujo cíclicas o simplemente estructuras cíclicas, estos ciclos, como su nombre lo sugiere, nos permiten ejecutar una o varias líneas de código de forma iterativa, conociendo un valor especifico inicial y otro valor final, además nos permiten determinar el tamaño del paso entre cada "giro" o iteración del ciclo.

En resumen, un ciclo for es una estructura de control iterativa, que nos permite ejecutar de manera repetitiva un bloque de instrucciones, conociendo previamente un valor de inicio, un tamaño de paso y un valor final para el ciclo.

¿Cómo funciona un Ciclo For?

Para comprender mejor el funcionamiento del ciclo for, pongamos un ejemplo, supongamos que queremos mostrar los números pares entre el 50 y el 100, si imaginamos un poco como seria esto, podremos darnos cuenta que nuestro ciclo deberá mostrar una serie de números como la siguiente: 50 52 54 56 58 60 ... 96 98 100. Como podemos verificar, tenemos entonces los componentes necesarios para nuestro ciclo for, tenemos un valor inicial que sería el 50, tenemos también un valor final que sería el 100 y tenemos un tamaño de paso que es 2 (los números pares). Estamos ahora en capacidad de determinar los componentes esenciales para un ciclo for.

Vamos a ver ahora como es la sintaxis de un ciclo for en C++, así estaremos listos para usarlos en nuestros programas de ahora en adelante

Sintaxis del Ciclo For en C++:

La sintaxis de un ciclo for es simple en C++, en realidad en la mayoría de los lenguajes de alto nivel es incluso muy similar, de hecho, con tan solo tener bien claros los 3 componentes del ciclo for (inicio, final y tamaño de paso) tenemos prácticamente todo hecho

	
for(int i = valor inicial; i <= valor final; i = i + paso)
{
		....
		....
	Bloque de Instrucciones....
		....
		....
}
	

Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos un ejemplo con valores reales.

Línea 1:

En esta línea está prácticamente todo lo esencial de un ciclo for. La sintaxis es simple, tenemos una variable de control llamada i que es tipo entero (int), cabe notar que la variable se puede llamar como nosotros lo deseemos y puede ser del tipo de queramos también, sin embargo en la mayoría de los casos se usa la "i" como nombre y el entero como tipo, pero somos libres de modificar esto a nuestro gusto. Esta variable "i" se le asigna un valor inicial que puede ser cualquier número correspondiente al tipo de dato asignado. Posteriormente lo que haremos será especificar hasta donde irá nuestro ciclo por medio del valor final, ten en cuenta que cada uno de estos componentes es separado por un punto y coma ";", también es importante saber que la condición final puede ser cualquier cosa, mayor, menor, mayor o igual, menor o igual, sin embargo no tiene sentido que la condición sea por ejemplo un igual, pues nuestra variable de control siempre va a cambiar entre valores, menores o mayores que el valor final deseado, si fuera un igual no tendríamos un error de sintaxis, pero nuestro for básicamente no haría nada de nada. Finalmente el ultimo componente de esta primer línea es el tamaño del paso, este componente se especifica aumentando en la cantidad deseada la variable de control.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica que allí comienza el bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro". Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutara dentro de nuestro ciclo la primera línea inmediatamente posterior a la declaración del ciclo, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más ciclos, así que podrías tener todo un programa dentro de un ciclo.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabrás esta nos indica que allí termina el bloque del ciclo for y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.

No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que con un par de ejemplos que veremos a continuación, te va a quedar todo claro

Ejemplos de Ciclo For en C++

A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada el uso de los ciclos for en c++, recuerda que si no comprendes alguno de estos ejemplos o tienes alguna pregunta o sugerencia sobre estos o cualquier contenido de la sección, puedes dejarlas en la sección de comentarios

Ejemplo 1: Mostrar en pantalla los números pares

Vamos a retomar el ejemplo anterior, donde deseábamos sacar los números pares entre el numero 50 y el 100, es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien lo anterior:

Solución Ejemplo 1:

Como pudimos ver anteriormente, tenemos entonces que el valor inicial para nuestro ciclo es el numero 50 y el valor final es el 100, además, dado que necesitamos los números pares vamos a ir de dos en dos, así que el tamaño del paso va a ser 2, teniendo estos 3 componentes identificados, estamos listos para crear nuestro ciclo for así:

	
for(int i=50;i<=100;i+=2)
{//Notemos que escribir i+=2 es similar a escribir i = i + 2
	cout << i << endl;
}
	

El código funcional completo sería el siguiente:

	
#include "iostream"

using namespace std;
int main()
{

	for(int i=50;i<=100;i+=2)
	{//Notemos que escribir i+=2 es similar a escribir i = i + 2
		cout << i << endl;
	}
	system("PAUSE");
	return 0;
}
	

Nota: Si no comprendes alguna de las líneas de estos códigos, te recomiendo visitar los contenidos anteriores (Entrada y Salida de Datos, Librerías ó Comentarios, Estructura de un Programa) o también puedes dejar un comentario al final de la sección con tu pregunta.

Ejemplo 2: Cuenta regresiva en un ciclo for

Ahora veremos otro ejemplo sencillo en cual veremos que el ciclo for también puede iterar disminuyendo el valor del contador, para comprender esto, lo que haremos será imprimir por pantalla una cuenta regresiva desde el número diez hasta el cero, veamos:

Solución Ejemplo 2:

Para este caso, debido a que queremos ir de un número mayor a uno más pequeño, por lo tanto para este ejemplo el valor inicial será 10 y el valor final será cero. Adicional, el tamaño de paso será de 1 negativo, es decir, -1, así:

	
for(int i=10;i > 0; i--)
{//Notemos que escribir i-- es similar a escribir i = i - 1
	cout << i << endl;
}
	

El código funcional completo sería el siguiente:

	
#include "iostream"

using namespace std;
int main()
{

	for(int i=10; i > 0; i--)
	{//Notemos que escribir i-- es similar a escribir i = i - 1
		cout << i << endl;
	}
	system("PAUSE");
	return 0;
}
	

Este código del ejemplo dos imprimirá por pantalla la serie numérica 109876543210

Ejemplo 3: Contador con un ciclo for

Para este ejemplo haremos algo un poco más complejo. El ejemplo consiste en contar al interior de un ciclo for, cuántos números entre el 0 y el 10.000 son múltiplos del 13. Para ello haremos uso del operador % (modulo) que obtiene el residuo de una división y también usaremos un pequeño condicional para verificar que el modulo sea cero al dividir por 13.

Solución Ejemplo 3:

Para este caso el valor inicial será 0 y el valor final será 10000. Adicional, el tamaño de paso será de 1. Al interior del ciclo, en cada iteración verificaremos si el número en el que estamos es divisible por trece o no y en caso afirmativo aumentaremos el contador en una unidad así:

	
int contador = 0; //Iniciamos el contador en cero
for(int i = 0; i < 10000; i++)
{//Notemos que escribir i++ es similar a escribir i = i + 1
	if(i%13 == 0) //Si el residuo es cero es múltiplo de 13
	{
		contador++; //Si es múltiplo aumentamos el contador en 1
	}	
}
//Mostramos el contador después de verificar todos los números
cout << contador << endl;
	

El código funcional completo sería el siguiente:

	
#include "iostream"

using namespace std;
int main()
{
	int contador = 0; //Iniciamos el contador en cero
	for(int i = 0; i < 10000; i++)
	{//Notemos que escribir i++ es similar a escribir i = i + 1
		if(i%13 == 0) //Si el residuo es cero es múltiplo de 13
		{
			contador++; //Si es múltiplo aumentamos el contador en 1
		}	
	}
	//Mostramos el contador después de verificar todos los números
	cout << contador << endl;
	system("PAUSE");
	return 0;
}
	

Este ciclo for nos permitirá saber que existen 770 múltiplos del 13 en los números del 0 al 10000.

En efecto los ciclos for, son bastante útiles, sin embargo desde el punto de vista de la eficiencia, es recomendable evitarlos en la medida de lo posible, siempre que vayas a usar un ciclo for, deberías preguntarte primero si es totalmente necesario o si existe una manera más efectiva de hacerlo. Evidentemente habrá situaciones en las que será casi que imprescindible usar el ciclo for, pues por algo existen. Está entonces en nuestra habilidad determinar cuándo usarlos y mejor aún cómo usarlos de manera efectiva.

Muy bien de momento, es todo en esta sección, podemos entonces continuar ahora con el siguiente contenido que son los ciclos While, recuerda también dejar tus comentarios y/o preguntas en la sección de comentarios