3. Estructuras de Repetición
Los lenguajes de programación poseen estructuras o líneas de código que permiten
repetir un bloque o porción de código una cantidad determinada de veces, o repetir
un bloque o porción de código mientras se cumpla una condición. A estas estructuras
también se les conoce como estructuras de iteración o bucles. Como vimos en líneas
anteriores, normalmente las instrucciones de un lenguaje de programación se
ejecutan línea a línea secuencialmente, y una detrás de otra. Sin embargo, con estas
estructuras de repetición, podemos cambiar o alterar ese flujo convencional de
ejecución de las instrucciones, repitiendo un bloque o porción de código tantas veces
como queramos, o repitiendo un bloque o porción de código mientras se cumpla
alguna condición.
8. Estructura For
En la Figura 1
observamos el
diagrama de
actividades UML de
una estructura for.
Figura 1. Diagrama de Actividades de una estructura for
13. Estructura For
El código JAVA para representar la estructura de repetición for de la figura 1 se representa en
la figura 2.
Figura 2. Código JAVA genérico de una estructura for
18. Ejemplo de uso del ciclo for
Por ejemplo, si quisiéramos utilizar el ciclo for para explorar un arreglo de frutas, con tres elementos en
su interior, usaríamos el código de la figura 3. Recuerde no usar tildes en el lenguaje de
programación para evitar errores de compilación o resultados no deseados, por ejemplo, en la palabra
“melón”, y la palabra “posición”.
Figura 3. Uso del ciclo for para explorar un arreglo de frutas con 3 elementos.
20. Ejemplo de uso del ciclo for
Por esa misma razón utilizamos el compilador online, pues como se ha dicho en líneas anteriores,
solamente lo utilizaremos para “probar” código, pero en ninguna manera es una alternativa para un
desarrollo profesional y serio de desarrollo de software.
Figura 4. Resultado de ejecutar el código en una clase de Ejemplo del compilador online
21. Ejemplo de uso del ciclo for
Como podemos observar en la figura 4, el resultado de ejecutar el código de la figura 3, es ver en
pantalla cada uno de los elementos del arreglo “frutas”, pero esta vez haciendo uso de la estructura de
repetición for. Observe con atención el código de la figura 3, específicamente las instrucciones referentes
a la estructura de repetición for, y que se replican nuevamente en la figura 5.
Figura 5. Estructura de repetición for para explorar arreglos
29. Aplicación de la estructura de Repetición for
Veamos con un ejemplo la aplicación de la estructura de repetición for. Continuamos trabajando con
la clase AppPrueba, y la clase Persona, y cuyo diagrama de clase se ilustra en la figura 6.
Figura 6. Aplicación AppPrueba que usa a la clase Persona
30. Aplicación de la estructura de Repetición for
A estas alturas ya tenemos escrito todo el código de esta solución de software, y que replicamos
nuevamente en las figuras 7 y 8.
Figura 7. Código Fuente de la clase AppPrueba
Figura 8. Código Fuente de la clase Persona
31. Aplicación de la estructura de Repetición for
Lo que se observa en las figuras 7 y 8 es lo que hemos venido trabajando
hasta el momento en este curso, pero para ilustrar el uso de las estructuras
de repetición, en particular la estructura de repetición for, realizaremos
algunas modificaciones al código. En esta situación, seguiremos con el
ejemplo de capítulos anteriores de crear un arreglo que almacene la
información de amigos, pero en vez de explorar el arreglo para mostrar la
información utilizando cada índice del arreglo, exploraremos
dinámicamente el arreglo con ayuda del ciclo for.
32. Aplicación de la estructura de Repetición for
Figura 9. Creación del arreglo nombresAmigos de tipo String con una longitud de 3
En primer lugar, crearemos un arreglo de tipo String denominado “nombresAmigos”, similar al arreglo
trabajado en capítulos anteriores-, de manera que “nombresAmigos” será un arreglo que se comporte
como una variable de clase o atributo de la clase Persona. En este caso, “nombresAmigos” será un
arreglo que posea los nombres de los amigos de la persona modelada en la clase Persona. En la
figura 9 se muestra el código JAVA para el arreglo “nombresAmigos” declarado como variable de clase
o atributo para la clase Persona.
33. Aplicación de la estructura de Repetición for
En segundo lugar modificaremos el método saludar() de la clase Persona, de manera que alimentemos el
arreglo “nombresAmigos” con los nombres de tres amigos utilizando el índice, similar a como se realizó en
capítulos anteriores. En la figura 10 observamos el código JAVA para asignar un valor a cada posición del
arreglo “nombresAmigos” utilizando el índice.
Figura 10. Asignación de valores a cada una de las posiciones del
arreglo “nombresAmigos”
35. Aplicación de la estructura de Repetición for
En la figura 11 se muestra el código JAVA para explorar el arreglo “nombresAmigos” declarado
como
Figura 11. Impresión en pantalla de cada uno de los valores del arreglo “nombresAmigos”
43. Aplicación de la estructura de Repetición for
Veamos el diagrama de
actividades de la situación
anteriormente mencionada,
pues nos proporcionará
mayor luz sobre la situación.
En la figura 12 observamos el
diagrama de actividades que
representa al método
saludar() , integrando la
estructura de repetición for.
Figura 12. Diagrama de actividades
del método saludar()
46. Aplicación de la estructura de Repetición for
El código JAVA para el método saludar() de la figura 12 se
representa en la figura 13.
Figura 13. Código JAVA del método saludar()
50. Aplicación de la estructura de Repetición for
Finalmente, observe que después del bloque de código de
la instrucción for, no hay más líneas de código y llegamos
al final del método saludar(). En otras palabras, después
de la estructura de repetición for seguiría el flujo normal
del método saludar(), pero como no hay más
instrucciones, entonces se da por finalizado el método
saludar().
52. Código de la Clase Persona terminado
Con el diagrama de actividades de la figura 12 del método saludar(),
y usando el código de la figura 13 podemos complementar el código
base de la figura 8 de la clase Persona, de manera que ya sabemos
qué líneas de código posee el método saludar() para integrar la
estructura de repetición for, o en otras palabras, ya conocemos su
código funcional. En la figura 14 observamos el código de la clase
Persona culminado con la información proporcionada por el
diagrama de actividades de la figura 12, y el código de la figura 13.
53. Código de la Clase Persona terminado
Figura 14. Código Fuente de la clase Persona modificado
54. Código de la Clase Persona terminado
Como se puede observar en el código de la figura 14, ya tenemos
dentro de la clase “Persona” la estructura de datos denominada
arreglo, que para este caso particular se llama “nombresAmigos”, y
almacena 3 datos de tipo String. Además, observe como el arreglo
“nombresAmigos” es utilizado por el método saludar(), de manera
que se utiliza el índice para asignar valores a cada una de las
posiciones del arreglo, y luego, se utiliza la estructura de repetición
“for” para acceder a las posiciones del arreglo y extraer su respectivo
valor para mostrarse en pantalla utilizando la instrucción
System.out.println().
57. Compilación y Ejecución de código JAVA desde CMD
Figura 15. Archivo AppPrueba.java dentro de la carpeta bin
58. Compilación y Ejecución de código JAVA desde CMD
En la figura 16 se observa cómo el archivo Persona.java se encuentra dentro de
la carpeta bin del JDK.
Figura 16. Archivo Persona.java dentro de la carpeta bin
59. Compilación y Ejecución de código JAVA desde CMD
Ya con nuestros archivos listos dentro de la carpeta bin, lo que resta es
abrir el CMD desde la carpeta bin como se explicó en la lectura
denominada “Manual: Preparar el Entorno de Desarrollo”, como se ilustra
en la figura 17. (Recuerde que teniendo abierta la carpeta bin desde el
explorador de archivos, debemos ubicar la barra de direcciones del
explorador de archivos y debemos reemplazar el contenido de la barra de
direcciones de la carpeta bin, por la palabra “cmd”, y a continuación pulsar
la tecla “Enter” para que podamos abrir la herramienta CMD desde allí).
60. Compilación y Ejecución de código JAVA desde CMD
Figura 17. Herramienta cmd desde la ruta de la carpeta bin
61. Compilación y Ejecución de código JAVA desde CMD
En la herramienta CMD invocaremos los comandos de compilación de código JAVA, y ejecución de
código JAVA para visualizar el resultado final, como se ilustra en la figura 18.
Figura 18. Compilación y Ejecución de la clase AppPrueba
66. Compilador Online
Si queremos probar esta aplicación en el compilador online JDOODLE
(https://www.jdoodle.com/online-java-compiler/ ) , recordemos que todo el código debe estar en
un único archivo, y que solamente puede haber una única clase pública -La clase que posee el
método main- y las demás clases no tendrán la palabra public para que todo funcione bien. En
la figura 19 se observa todo el código en único archivo. Note que solamente la clase AppPrueba
posee la palabra reservada public, y la clase Persona no posee dicha palabra.
Ya con este par de cambios (un archivo único con todo el código, y una única clase pública),
podemos copiar y pegar el código que tenemos en nuestro único archivo, para llevarlo al
compilador online, y presionar el botón execute, como se observa en la figura 20.
71. Compilador Online
Como se puede ver en la figura 20, el resultado es el mismo que si se hubiese
compilado el código en nuestra máquina local usando el JDK y el CMD.
Recordemos que lo que debemos tener en cuenta para que esto funcione es tener
un único archivo con todo el código, y que solamente haya una única clase pública
en todo el código, que normalmente será la clase que posee el método main(). Sin
embargo, nuevamente recordamos la siguiente recomendación: Para este curso
recomendamos siempre descargar y utilizar el JDK de manera local, pero si no está
en la posibilidad de hacerlo, un compilador online siempre será una buena
alternativa para “probar” código. Recuerde que estos compiladores online tienen la
finalidad de “probar” el código, pero NUNCA reemplazarán el proceso de escribir
código, compilar código y ejecutar código con el JDK real de JAVA, para luego
desplegar los resultados en un entorno de producción.