3. Estructuras de control
Los lenguajes de programación poseen estructuras o líneas de código que
permiten alterar el orden de ejecución de las instrucciones, o, en otras
palabras, controlar el flujo de ejecución de dichas instrucciones.
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 control, podemos cambiar o alterar ese flujo convencional de
ejecución de las instrucciones, ya sea dependiendo del valor que posea en
un momento dado una condición, o por la cantidad de veces que queramos
que se repita un bloque de código.
8. Estructuras If-Else
Esta estructura de control es fundamental para tomar decisiones con base en el valor de una
condición. Esta estructura de control evalúa el valor de la condición y ejecuta uno u otro bloque
de instrucciones dependiendo de si la condición evaluada se cumple o es verdadera, o no se
cumple y es falsa. En la Figura 1 observamos el diagrama de actividades UML de una estructura
if-else.
Figura 1. Diagrama de Actividades de una estructura If-Else
11. Estructuras If-Else
El código JAVA para representar la estructura de control if-else de la figura 1 se
representa en la figura 2.
Figura 2. Código JAVA genérico de una estructura If-Else
15. Aplicación de la estructura de Decisión If-Else
Veamos con un ejemplo la aplicación de la estructura de control If-Else. Para este caso, continuamos
trabajando con la clase AppPrueba, y la clase Persona, cuyo diagrama de clase se ilustra en la figura
3.
Figura 3. Aplicación AppPrueba que usa a la clase Persona
A estas alturas ya tenemos escrito todo el código de esta solución de software, y que replicamos
nuevamente en las Figuras 4 y 5.
16. Aplicación de la estructura de Decisión If-Else
Figura 4. Código Fuente de la clase AppPrueba
17. Aplicación de la estructura de Decisión If-Else
Figura 5. Código Fuente de la clase Persona
20. Aplicación de la estructura de Decisión If-Else
Veamos el diagrama de actividades de la situación anteriormente mencionada, pues nos proporcionará
mayor luz sobre la situación. En la figura 6 observamos el diagrama de actividades que representa al
método saludar() , integrando la estructura de control if-else.
Figura 6. Diagrama de actividades del método saludar()
25. Aplicación de la estructura de Decisión If-Else
En desarrollo de software es común tener una instrucción if-else para tomar decisiones y elegir uno de
dos caminos posibles, pero, después de haber ejecutado las instrucciones correspondientes, es común
retornar a un camino o flujo principal del programa, como se observa en el diagrama de actividades de la
figura 7.
Figura 7. Diagrama de Actividades de una estructura If-Else ilustrando la continuación del flujo normal del programa
26. Aplicación de la estructura de Decisión If-Else
El código JAVA para el método saludar() de la figura 6 se representa en la figura 8.
Figura 8. Código JAVA genérico del método saludar().
30. Código de la clase persona terminado
Con el diagrama de actividades de la figura 6 del método saludar(), y usando el
código de la figura 8 podemos complementar el código base de la figura 5 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 control if-else, o en otras
palabras, ya conocemos su código funcional. En la figura 9 observamos el
código de la clase Persona culminado con la información proporcionada por el
diagrama de actividades de la figura 6, y la modificación de la variable de clase
o atributo edad con el valor de 20.
31. Código de la clase persona terminado
Como se puede observar en
el código de la figura 9, ya
tenemos dentro del método
saludar() la estructura de
control if-else que permitirá
mostrar un mensaje u otro,
dependiendo del valor que
tenga la variable de clase o
atributo edad.
Figura 9. Código Fuente de la clase Persona modificado
34. Compilación y Ejecución de código JAVA desde CMD
Figura 10. Archivo AppPrueba.java dentro de la carpeta bin
35. Compilación y Ejecución de código JAVA desde CMD
En la figura 11 se observa cómo el archivo Persona.java se encuentra dentro de la carpeta
bin del JDK.
Figura 11. Archivo Persona.java modificado dentro de la carpeta bin
36. 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 el “Manual: Preparar el Entorno
de Desarrollo”, como se ilustra en la figura 12. (Recordemos 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í).
37. Compilación y Ejecución de código JAVA desde CMD
Figura 12. Herramienta cmd desde la ruta de la carpeta bin
38. 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 13.
Figura 13. Compilación y Ejecución de la clase AppPrueba
40. Compilación y Ejecución de código JAVA desde CMD
Figura 14. Archivo Persona.java modificado en el atributo edad dentro de la carpeta bin
41. Compilación y Ejecución de código JAVA desde CMD
En la herramienta CMD nuevamente invocaremos los comandos de compilación de código JAVA, y
ejecución de código JAVA para visualizar el resultado final habiendo modificado la variable de clase o
atributo edad con un valor de 13, como se ilustra en la figura 15.
Figura 15. Nueva Compilación y Ejecución de la clase AppPrueba
42. Compilación y Ejecución de código JAVA desde CMD
Como podemos observar en la figura 15, encontramos el mensaje “Hola me llamo: Elfar y
soy menor de edad”, puesto que la variable de clase o atributo edad posee el valor de 13.
En conclusión, pudimos comprobar el funcionamiento de la estructura de control if-else, en
donde se evalúa una condición -en este caso this.edad >=18 - y si el resultado de esa
evaluación es verdadera, o en otras palabras, se cumple la condición, veremos el mensaje
“Hola me llamo: Elfar y soy mayor de edad”, pero si la evaluación de esa condición es falsa,
o en otras palabras, no se cumple la condición, veremos el mensaje “Hola me llamo: Elfar y
soy menor de edad”. Por tanto, nuestro código está tomando uno u otro camino,
dependiendo del valor de la variable de clase o atributo denominado edad. Si el valor de
edad es mayor o igual que 18 se toma un camino, y si el valor de edad es menor que 18 se
toma otro camino, como se vio en la figura 6, y que se ilustra nuevamente en la figura 16.
43. Compilación y Ejecución de código JAVA desde CMD
Figura 16. Diagrama de actividades del método saludar()
45. 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 17 se observa todo el código en único archivo. Nótese que
solamente la clase AppPrueba posee la palabra reservada public, y la
clase Persona no posee dicha palabra.
46. Compilador Online
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
18.
Figura 17. Código de la clase AppPrueba y la clase Persona en un único archivo
50. Compilador Online
Como se puede ver en la figura 18, 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 para que esto funcione debemos 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.