Curso de Java

Aprende Java de una buena vez

gratis
texto

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 4 meses

Imagen descriptiva de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

Lo que dicen los estudiantes

Muchas gracias me has ayudado a quitar mis dudas de qué es For While, if y switch. Esto me ayudara también a mi tarea.

Len Garcia

Visitante del sitio ProgramarYa.com

Estoy muy contento por haber terminado este curso. Estoy aplicando lo aprendido a mis proyectos y quedo totalmente satisfecho. Un curso 100% recomendable.

Jesus Romero

Estudiante del curso "VPS Seguro con DigitalOcean, Nginx, Letsencrypt Ubuntu 14.04"

El curso es bueno, pero siempre explica demasiado rápido

E-Contact

Estudiante del curso " Aprende Laravel: Crea un Gestor de Fotos con Laravel y PHP"

Buena didáctica y redacción, espero más contenidos en los siguientes capítulos.

Juan Razo Ruiz

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Muy detallado y claras las explicaciones. Muchas gracias!

Sr. Erick Evencio

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Buenas explicaciones y temario interesante.

Leonardo Quimpos

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Muy bien explicado. Contenido muy actualizado.

Santiago Zuluaga

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

¡De lo mejor! Saludos desde México, está super bien todo, claro y preciso. Lo mejor es que se usen ejemplos. ¡Mejor que algunos profesores que me han tocado!

Rodrigo Enciso

Visitante de PrograarYa.com

Muy buena presentación pedagógica, pues nos quita el miedo a la programación. Yo entiendo que ésta tiene como objetivo facilitar el manejo de procesos que serían, demasiado complejos.

Jairo Ibarbo

Visitante del sitio ProgramarYa.com

Muy buen programador, dominas la POO como en ninguno otro curso, el uso de traits en el proyecto es una delicia.

Sergio Larracoechea

Estudiante del curso "APIs RESTful con Laravel"

Hice muchos ejercicios y aquí logré comprender lo que realmente estaba haciendo. Llegó un momento en que dejó de gustarme la programación, pero con estos textos, recuperé la motivación. Buen trabajo.

Demetrio Cumplido

Visitante del sitio ProgramarYa.com

Demoramos mucho para llegar al desarrollo. Aunque la maquina virtual es necesaria son muchos videos. De ahí en fuera está muy bien

Benjamin Ortiz

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Wuau, entendí más en una hora leyendo esto que en todo el semestre con la maestra de informática.

Valeria Sybelle

Visitante del sitio ProgramarYa.com

Estuve un semestre sin programar y me siento bastante perdida. Espero que este curso me ayude a ponerme de nuevo al corriente.

Fernanda Sanchez

Visitante del sitio ProgramarYa.com

Habiendo visto el 100% del curso puedo decir que es muy bueno de acuerdo a lo propuesto, cumple con las expectativas.

Holmans Correa

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Genial el ambiente que genera la pagina. Simple, rápido, fácil y al alcance de cualquiera.¡Sigan así cracks!

Fran Garassi

Visitante del sitio ProgramarYa.com

¡Listo!

En breve recibirás un mensaje de confirmación. Verifica, por si acaso, la carpeta de correo no deseado.

¡Ups! {{subscriberErrorMessage}}

Si te parece bien, te enviaré, de vez en cuando, mensajes de interés sobre los temas que se tratan en sitio.

Tu dirección de correo electrónico será almacenada con un interés según el artículo en el que te encontrabas.

Además, puedes eliminar tu suscripción en cualquier momento.