Ciclo for en Java. Estructura, sintaxis y uso de un ciclo for en Java
Los ciclos for (o ciclos para) son una estructuras de control cíclica, nos permiten ejecutar una o varias líneas de código de forma iterativa (o repetitiva), pero teniendo cierto control y conocimiento sobre las iteraciones. En el ciclo for, es necesario tener un valor inicial y un valor final, y opcionalmente podemos hacer uso del tamaño del "paso" entre cada "giro" o iteración del ciclo.
En resumen, un ciclo for es una estructura iterativa para ejecutar un mismo segmento de código una cantidad de veces deseada; 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, solucionemos un pequeño ejercicio práctico, supongamos que queremos mostrar los números pares (múltiplos de dos :P) entre el 500 y el 1000. Con esta información inmediatamente podemos determinar que por medio de un ciclo debemos mostrar una serie de números como la siguiente: 500 502 504 506 ... 600 ... 852 ... 906 ... 980 .. 1000. Tenemos entonces todo lo necesario para nuestro ciclo. Tenemos un valor inicial que sería el 500, un valor final (1000) 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 la sintaxis de un ciclo for en Java, así estaremos listos para usarlos en nuestros programas de ahora en adelante.
Sintaxis del Ciclo For en Java:
La sintaxis de un ciclo for es simple en Java, 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 Java
A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada el uso de los ciclos for en Java, 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 500 y el 1000, es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien lo anterior:
Solución Ejemplo 1:
for(int i=500;i<=1000;i+=2)
{//Notemos que escribir i+=2 es similar a escribir i = i + 2
System.out.println(i);
}
El código funcional completo sería el siguiente:
public class CicloFor
{
public static void main(String args[])
{
for(int i=500;i<=1000;i+=2)
{
System.out.println(i);
}
}
}
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.
Ejemplo 2: Cuenta regresiva en un ciclo for
Ahora veremos otro ejemplo sencillo en cual haremos que el ciclo for también haga sus iteraciones en sentido inverso, es decir disminuyendo el valor de la variable de controlvamos a imprimir por pantalla una cuenta regresiva desde el número 100 hasta el 0, 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á 100 y el valor final será 0. Adicional, el tamaño de paso será de 1 negativo, es decir, -1, así:
for(int i = 100; i > 0; i--)
{//Notemos que escribir i-- es lo mismo a escribir i = i - 1
System.out.println(i);
}
El código funcional completo sería el siguiente:
public class CicloInverso
{
public static void main(String args[])
{
for(int i = 100; i > 0; i--)
{
System.out.println(i);
}
}
}
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 20. Para ello haremos uso del operador % (módulo) que obtiene el residuo de una división y también usaremos un pequeño condicional para verificar que el módulo sea cero al dividir por 20.
Nota: El operador de módulo (%) obtiene el residuo de una división, por tanto cuando el residuo es cero implica que la division es exacta y el dividendo es un múltiplo del divisor. Por ejemplo 10%3 nos dará el residuto de dividir 10 entre 3, el cual es 1, si calculamos 120%20 nos dará cero, pues 120 es múltiplo de 20 (20 * 6 = 120).
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 (este es el caso más común). Al interior del ciclo, en cada iteración verificaremos si el número en el que estamos es divisible por 20 o no y en caso afirmativo aumentaremos el contador en una unidad así:
Nota: Este problema se puede solucionar de maneras mucho más optimas y adecuadas, pero para fines de comprensión y facilidad lo harémos usando un ciclo for de uno en uno.
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 % 20 == 0) //Preguntamos si el residuo es 0 (es múltiplo de 20)
{
contador++; //Si es múltiplo aumentamos el contador en 1
}
//Si no es múltiplo no hacemos nada
}
//Mostramos el valor del contador
System.out.println(contador);
El código funcional completo sería el siguiente:
public class Multiplos
{
public static void main(String args[])
{
int contador = 0; //Iniciamos el contador en cero
for(int i = 0; i <= 10000; i++)
{
if(i % 20 == 0) //Preguntamos si el residuo es 0 (es múltiplo de 20)
{
contador++; //Si es múltiplo aumentamos el contador en 1
}
//Si no es múltiplo no hacemos nada
}
//Mostramos el valor del contador
System.out.println(contador);
}
}
Este ciclo for nos permitirá saber que existen 501 múltiplos del número 20 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 lss funciones, recuerda también dejar tus comentarios y/o preguntas en la sección de comentarios
La última actualización de este artículo fue hace 6 años