Programación en Java
GUÍA DIDÁCTICA N°2
M2-DV59-GU02
MÓDULO 2: ESTRUCTURAS DE ITERACIÓN, CONDICIÓN Y VECTORES
DIPLOMADO EN PROGRAMACIÓN EN JAVA
© DERECHOS RESERVADOS - POLITÉCNICO DE COLOMBIA, 2018
Medellín, Colombia
Proceso: Gestión Académica
Realización del texto: Diego Palacio, Docente
Revisión del texto: -, Asesor Gramatical
Diseño: Cristian Quintero, Diseñador Gráfico
Editado por el Politécnico de Colombia
DIPLOMADO EN PROGRAMACIÓN EN JAVA 2
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
ÍNDICE
PRESENTACIÓN.................................................................................................................................... 4
COMPETENCIAS ................................................................................................................................... 5
TEMA 1 Condicionales ......................................................................................................................... 6
TEMA 2 Ciclos .................................................................................................................................... 35
TEMA 3 Vectores ............................................................................................................................... 54
TEMA 4 Matrices ............................................................................................................................... 65
ASPECTOS CLAVES ............................................................................................................................. 78
REFERENCIAS BIBLIOGRÁFICAS ......................................................................................................... 80
DIPLOMADO EN PROGRAMACIÓN EN JAVA 3
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
PRESENTACIÓN
La Guía Didáctica N°2 del MÓDULO 2: ESTRUCTURAS DE
ITERACIÓN, CONDICIÓN Y VECTORES, es un material que ha sido
desarrollado para el apoyo y orientación del participante en el
Diplomado en Programación en Java, especialmente, está orientada a la
consolidación y/o desarrollo de las habilidades y destrezas necesarias
para generar unas adecuadas bases en lo que concierne a la
programación en Java.
Como bien conoces, el objetivo principal de este módulo número 2
es introducir al estudiante en todo a lo referente a las estructuras de
iteración, condición y vectores, todos sus componentes y conceptos para
un desarrollo idóneo en sus bases.
Para ello, se ha organizado esta guía cuatro (4) contenidos
temáticos, entre ellos: (a) estructuras condicionales, (b) ciclos, (c)
vectores y (d) matrices, que ayudarán a formar unas excelentes
competencias.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 4
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
COMPETENCIAS
Se espera que con los temas abordados en la Guía Didáctica N°1 del
MÓDULO 1: ESTRUCTURAS DE ITERACIÓN, CONDICIÓN Y VECTORES, el
estudiante logre la siguiente competencia:
Comprender las diferentes estructuras condicionales y de
iteración para almacenamiento de datos en vectores y
matrices.
Indicadores de logro:
o Comprende la correcta sintaxis para la creación de
estructuras condicionales y de iteración.
o Conoce las diferentes estructuras y tipos de
condicionales y ciclos.
o Implementa adecuadamente los vectores y matrices
para el almacenamiento de datos.
o Recorre adecuadamente por medio de ciclos, los
vectores y matrices.
o Comprende adecuadamente en qué momento aplicar
estructuras condicionales y de iteración y en qué
momentos no.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 5
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
TEMA 1
Condicionales
¿Qué es una condicional?
Cuando se escribe un programa, se introduce la secuencia de
sentencias. Sin sentencias de control del flujo, el intérprete (compilador)
ejecuta las sentencias conforme aparecen en el programa de principio a
fin. Las sentencias de control de flujo se emplean en los programas para
ejecutar sentencias condicionalmente, repetir un conjunto de sentencias
o, en general, cambiar el flujo secuencial de ejecución. (Arkaitzgarro,
2018)
Ilustración 1: Ejemplo de condicional – Beber un café
Fuente: Autor.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 6
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Estructura condicional If
La estructura condicional más simple en Java es el if, ésta se
encarga de evaluar una condición, que para el correcto funcionamiento
retornará un valor booleano, en caso de que se cumpla (true) se ejecuta
el contenido entre las llaves {}. O en caso de que se omitan se ejecuta
el código hasta el primer punto y coma “;” por lo tanto si no se usan los
“{}”, la condición aplica solo a la siguiente instrucción al if.
(Arkaitzgarro, 2018).
Ilustración 2: Condicional if – Por medio de llaves “{}” – punto y coma “;”
Fuente: Eclipse.
Cuando se están diseñando estructuras condicionales se deben
tener en cuenta ciertos factores y características:
- Al Java ser tan sensible, se debe tener en cuenta la correcta
forma de diseñar una estructura condicional. Siempre se debe
nombrar el if en minúscula, su respectiva condición en
paréntesis y un valor opcional (aunque es lo más
DIPLOMADO EN PROGRAMACIÓN EN JAVA 7
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
recomendable) de ejecución dentro de su cumplimiento
(condición verdadera).
- La condición no se limita a una sola sentencia, se pueden tener
en cuenta las sentencias necesarias con el requisito de que
siempre debe retornar un valor booleano.
En la condicional se encuentran 2 sentencias a evaluar: (1) 2 < 9
y (2) 2 <= 4 separadas por el operador lógico “&&” (Tabla 7 –
Operadores lógicos – Módulo 1) que se encarga de evaluar que ambas
sentencias (1) y (2) sean verdaderas para el cumplimiento del “if”.
- (1) Retornará verdadero debido a que 9 sí es menor a 12.
- (2) Retornará verdadero debido a que 2 sí es menor a 4, pese a
que no es igual (<=).
DIPLOMADO EN PROGRAMACIÓN EN JAVA 8
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Dado que ambas sentencias de condición retornan verdadero, la
condición del if se cumple. Observe la siguiente tabla de verdad de
operadores lógicos para dar mayor claridad.
P Q P && Q P || Q !P
True True True True False
True False False True False
False True False True True
False False False False True
Tabla 1: Tabla de verdad
Fuente: Eclipse.
En la tabla se encuentran 2 variables booleanas (1) P y (2) Q, con
un valor de inicialización (true o false) y 3 series de casos dónde se
pone a prueba la variación a la que se pueden enfrentar, hay que tener
presente la tabla de operadores lógicos para entender el siguiente
ejercicio.
- Evaluación de la primera fila:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 9
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ilustración 3: Condicional if con operadores lógicos
Fuente: Eclipse.
En la fila número 1 el resultado es el esperado, en la serie número
1 con el operador de producto lógico cortocircuito “&&” al cumplirse que
(1) y (2) son true, la condicional se ejecutará como verdadera. En la
serie número 2, con el operador de suma lógica cortocircuito “||” al
cumplirse que (1) o (2) son al menos uno true, la condicional se
ejecutará como verdadera. En la serie número 3, con el operador de
negación “!” al no cumplirse que (1) es true, por la negación, la
condicional no se ejecutará cómo verdadera.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 10
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- Evaluación de la segunda fila.
Ilustración 4: Condicional if con operadores lógicos
Fuente: Eclipse.
En la fila número 2 el resultado es el esperado, en la serie número
1 con el operador de producto lógico cortocircuito “&&” al no cumplirse
que (1) y (2) son true, la condicional no se ejecutará como verdadera.
En la serie número 2, con el operador de suma lógica cortocircuito “||”
DIPLOMADO EN PROGRAMACIÓN EN JAVA 11
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
al cumplirse que (1) o (2) son al menos uno true, la condicional se
ejecutará como verdadera. En la serie número 3, con el operador de
negación “!” al no cumplirse que (1) es true, por la negación, la
condicional no se ejecutará cómo verdadera.
- Evaluación de la tercera fila.
Ilustración 5: Condicional if con operadores lógicos
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 12
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
En la fila número 3 el resultado es el esperado, en la serie número
1 con el operador de producto lógico cortocircuito “&&” al no cumplirse
que (1) y (2) son true, la condicional no se ejecutará como verdadera.
En la serie número 2, con el operador de suma lógica cortocircuito “||”
al cumplirse que (1) o (2) son al menos uno true, la condicional se
ejecutará como verdadera. En la serie número 3, con el operador de
negación “!” al cumplirse que (1) es true, por la negación, la condicional
se ejecutará cómo verdadera.
- Evaluación de la cuarta fila.
Ilustración 6: Condicional if con operadores lógicos
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 13
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
En la fila número 4, el resultado es el esperado, en la serie
número 1 con el operador de producto lógico cortocircuito “&&” al no
cumplirse que (1) y (2) son true, la condicional no se ejecutará como
verdadera. En la serie número 2, con el operador de suma lógica
cortocircuito “||” al cumplirse que (1) o (2) son al menos uno true, la
condicional se ejecutará como verdadera. En la serie número 3, con el
operador de negación “!” al cumplirse que (1) es true, por la negación,
la condicional se ejecutará cómo verdadera.
Estructura de condicional else
Hasta el momento la estructura condicional if ha servido para
ilustrar los casos en los que una sentencia encerrada en la condicional al
momento de retornar un valor booleano true, permite ejecutar código a
parte a raíz del mismo resultado, pero existen casos en qué se necesita
un complemento al if, en casos de que no se cumpla la condicional, ¿qué
hará el programa?, ahí entra en juego la estructura condicional else que
permite dentro del programa dictaminar una secuencia de instrucciones
en caso de que el if no retorne un valor true y encerrarlas dentro de {}
para su posterior ejecución.
El ejemplo más claro es el de beber un café (ilustración 1), donde
se determinan una serie de casos a raíz de los resultados que la
condicional va arrojando.
- Primero está la pregunta/condicional ¿Quieres un café?
Existen dos posibles resultados (1) sí – true y (2) no – false.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 14
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- Si el resultado es (1) es decir true, se entra de nuevo en una
condicional con la siguiente pregunta/condicional.
- ¿Vas a cómpralo?
Existen nuevamente dos resultados (3) sí – true y (4) no – false.
- Si el resultado es (3) es decir true, se entra a ejecutar
“Comprar un café” y por ende “beberlo”.
- Si el resultado es (4) es decir false, se entra a ejecutar “Hacer
el café” y por ender “Beberlo”.
- Sí el resultado de ¿Quieres un café? Es (2) es decir false, se
entra a ejecutar “Sigue estudiando”.
Es simple de entender el funcionamiento del else que juega el
papel de la negación, es decir el false y permite fraccionar el código para
los casos particulares en que se necesita segmentar el código.
Ilustración 7: Condicional else.
Fuente: Eclipse.
El ejemplo anterior del café aplicando su sintaxis en código sería
de la siguiente forma.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 15
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ilustración 8: Ejercicio condicional – Beber un café.
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 16
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Hay una particularidad que se debe tener en cuenta a la hora de
realizar operaciones booleanas con caracteres, y es la siguiente, la
manera de comparar cadenas de texto es utilizando el equals.
¿Qué es equals?
Se encarga de comparar la cadena de texto contra un objeto. Que
devolverá true si las cadenas comparadas son iguales. En caso contrario
devolverá false.
Ilustración 9: Estructura equals.
Fuente: Eclipse.
Diferencia entre equals () y “==”
En general, los operadores equals () y “==” en Java se usan para
comparar objetos para verificar la igualdad, pero aquí hay algunas de
las diferencias entre los dos:
1. La principal diferencia entre el método .equals () y el operador
== es que uno aplica para objetos y variables y el otro sobre
variables.
2. Se puede usar los operadores == para la comparación de
referencias (comparación de direcciones) y el método .equals ()
para la comparación de contenido. En palabras simples, ==
comprueba si ambos objetos apuntan a la misma ubicación de
DIPLOMADO EN PROGRAMACIÓN EN JAVA 17
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
memoria, mientras que equals () evalúa la comparación de
valores en los objetos.
Ilustración 10: Relación equals () y “==” (1).
Fuente: Eclipse.
Ilustración 11: Relación equals () y “==” (2).
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 18
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Cuando se da utilidad al else, se debe tener en cuenta que la
aplicación de éste le debe preceder la estructura condicional if; y que en
caso de cumplirse la segunda (if) anula completamente la función del
else.
Siempre que se desee utilizar una sentencia condicional con else,
se debe determinar que la aplicación sí es necesaria. Java admite else {}
sin sentencias que ejecutar, pese a que no es una buena práctica.
Recursos disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos adecuados.
Ejercicio
Ahora que has visto un poco cómo funcionan las
condicionales en Java, te sugerimos realizar los siguientes
ejercicios que te ayudarán a profundirzar el tema y llenar
vacíos (MÓDULO 2 – EJERCICIOS DE
CONDICIONALES SIMPLES). ¡Inténtalo!
DIPLOMADO EN PROGRAMACIÓN EN JAVA 19
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Estructura de condicional else if
En base a las dos estructuras condicionales vistas, existe una
derivación de ambas, que su utilidad se ve en el momento en el que las
condicionales estructuradas como if else ocupan una validación adicional
dentro del else, véase como “sí no se cumple la condición, haga lo
siguiente siempre y cuando se cumpla una nueva condición”.
La estructura else if es de gran importancia cuando se ocupa para
revalidar una condición dentro de un else como la función de un
cortafuego, que puede ir de sentencia en sentencia evaluándose hasta
encontrar el retorno correcto. Para ejemplificar de mejor forma lo
anterior, analícese el siguiente ejercicio:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 20
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ejercicio
En Colombia hay medidas que regulan la velocidad de los
automoviles según las zonas donde se encuentre:
- 30KM/H – Zonas Escolares
- 60KM/H – Vías Urbanas
- 80KM/H – Vías Rurales
- 100KM/H – Rutas Nacionales
Realice un algoritmo que permita determinar según una velocidad
X, a qué grupo de límites pertenezco y si estoy infringiendo los límites
de velocidad.
Ilustración 13: Estructura condicional if else.
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 21
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
En el ejercicio anterior se observa la aplicación donde el else if
cumple la función de evaluar otra sentencia previa a la ejecución del else,
en caso de no estar este else if, la condicional se quedaría estancada en
únicamente 2 posibles resultados (no exactos para el caso):
No se saldría de la sentencia número 1 o el resultado equívoco de
la misma. Además, el uso de else’s repetidamente es erróneo en el
lenguaje por la sintaxis, dado que no puede contener dos o más posibles
resultados para un solo caso erróneo:
Hay casos en que no aplica necesariamente el uso del else if, y son
aquellos donde sólo ocupamos dos resultados un sí o un no únicamente:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 22
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Por definición se sabe que sí el número no es mayor o igual a 0, va
a ser negativo. Aunque el funcionamiento no se vería afectado en caso de
agregarse un else if. Véase:
La segunda sentencia (numero < 0) puede sobrar en caso de que
se quiera, en este ejemplo es como un segundo seguro de que se está
validando que efectivamente el número sea menor que 0 (negativo) pese
a que el else lo hace implícitamente.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 23
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Estructuras condicionales anidadas
A un paso más allá de las estructuras pasadas, están las
condicionales anidadas que permiten ejecutar una sentencia a partir de
una condición en forma de ciclo hasta encontrar el retorno esperado
(Cumplimiento de la condición), si ésta condición se cumple, entonces se
ejecuta la sentencia en el programa, en caso de no cumplirse dicha
condición, se puede hacer otra condición en el programa para que se
cicle, marque error y vuelva a solicitar la información hasta que se
cumpla la condición, de no validarse la condición al igual que en los casos
anteriores, se puede definir un caso base donde retornará un valor que se
espera. (michelletorres, 2018).
Ilustración 14: Estructura condicional anidada.
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 24
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
A diferencia de las estructuras pasadas, las condicionales anidadas
proveen un abanico mucho más amplio de posibilidades y combinaciones
booleanas para determinar más casos y resultados, hay varios aspectos
a recordar cuando se utilicen condicionales anidadas.
- Utilizar únicamente las condicionales necesarias.
- Evitar redundancias en las sentencias.
- Siempre se debe tratar de tener un retorno en caso de que
ninguna condicional se aplique.
- Tener muy presente el uso correcto de las llaves y estar dentro de
las condicionales correctas debido al volumen de las mismas.
Recursos disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos y ejercicios adecuados.
Ejercicio
Ya qué viste los tipos principales de condicionales en Java,
es importante poner ese conocimiento a prueba. Realiza
los siguientes ejercicios con condicionales un poco más
complejas. (MÓDULO 2 – EJERCICIOS DE
CONDICIONALES COMPLEJAS). ¡Inténtalo!
DIPLOMADO EN PROGRAMACIÓN EN JAVA 25
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Switch case (Condicional de selección)
La instrucción Switch es una instrucción de múltiples vías
(condicionales) que proporciona una forma sencilla de enviar la
ejecución a diferentes partes del código en función del valor de la
expresión. Básicamente, la expresión puede ser tipos de datos
primitivos byte, short, char e int. A partir de JDK7, también funciona con
tipos enumerados (Enum en java), la clase String y las clases Wrapper.
(javadesdecero, 2018).
Ilustración 15: Estructura Switch case.
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 26
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Como en las estructuras pasadas hay varios factores a tener en
cuenta a la hora de desarrollar estructuras condicionales por medio
Switch case.
- Los valores duplicados de los case no están permitidos.
- El valor para un case debe ser del mismo tipo de datos que la
variable en el Switch.
- El valor para un case debe ser una constante o un literal. Las
variables no están permitidas.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 27
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- La declaración break se usa dentro del Switch para finalizar una
secuencia de instrucción.
- La declaración break es opcional. Si se omite, la ejecución
continuará en el siguiente case.
- La instrucción default es opcional, y debe aparecer al final del
Switch como último caso cumpliendo con similitud la función del
else.
- Se puede realizar cualquier tipo de operación dentro de la
declaración del case.
-
DIPLOMADO EN PROGRAMACIÓN EN JAVA 28
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Como se observa el papel que cumple el Switch case es muy
similar a la función de una condicional anidada con menos instrucciones
de código y con una sola sentencia a evaluar.
Break y Continue
Las palabras reservadas break y continue, se utilizan en Java para
detener completamente un ciclo (break) o detener únicamente la
iteración actual y saltar a la siguiente (continue). Normalmente si se usa
break o continue, se hará dentro de una sentencia if, que indicará cuándo
se debe detener el ciclo al cumplirse o no una determinada condición.
La gran diferencia entre ambos es que, break, detiene la ejecución
del ciclo y salta a la primera línea del programa tras el ciclo y continue,
detiene la iteración actual y pasa a la siguiente iteración del ciclo sin salir
de él (a menos, que el propio ciclo haya llegado al límite de sus
iteraciones).
NOTA: La sentencia continue debe estar siempre incluida dentro de un ciclo, sino
recibiréis un error de compilación. Mientras que la sentencia break, se puede encontrar
dentro de un bucle o en una sentencia Switch case).
La sentencia continue provoca que únicamente la iteración actual del ciclo más interno
detenga su ejecución y que comience inmediatamente la siguiente iteración si el ciclo
todavía no ha terminado. Por ejemplo:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 29
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Pese a que la estructura del ciclo for esté desarrollada para realizar
10 iteraciones, la sentencia break dentro de su funcionabilidad corta el
ciclo en la primera iteración y se sale del mismo.
En el caso del uso del continue, funciona de la siguiente forma:
El ciclo está declarado para iterar 5 veces en su estructura, la
condicional presente en el ciclo determina que cuándo éste llegue a la
tercera iteración salte inmediatamente a la siguiente iteración, por lo
que en ese caso la instrucción “Dentro del ciclo” no llegará a ser
ejecutada y en la salida en consola sólo habrá 4 impresiones.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 30
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Omisión de la declaración Break
Como la declaración break es opcional. Si se omite el break, la
ejecución continuará en el siguiente case. A veces es deseable tener
múltiples case sin declaraciones break entre ellos. Por ejemplo,
determinar en un Switch case los días laborales de la semana.
Ilustración 16: Estructura ejercicio Switch case.
Fuente: Eclipse.
En el ejemplo anterior se observa como la omisión del Break
simplifica la creación y ejecución de varios bloques clase resumiendo
todos en dos únicos casos de retorno (Día laborable – Fin de semana).
DIPLOMADO EN PROGRAMACIÓN EN JAVA 31
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Switch case anidados
Se puede usar un Switch como parte de la secuencia de la
declaración de un Switch externo. Esto se llama un Switch anidado.
Como una instrucción de Switch define su propio bloque, no surgen
conflictos entre las constantes de case en el Switch interno y las del
Switch externo. Por ejemplo:
Ilustración 17: Estructura ejercicio Switch case anidado.
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 32
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Switch case con String
Desde JDK 7, se puede usar una cadena literal/constante para
controlar una declaración Switch. Usar un modificador basado en
cadena/String es una mejora con respecto al uso de la secuencia
equivalente if/else.
Ilustración 18: Estructura ejercicio Switch case String.
Fuente: Eclipse.
- Operación costosa: el “Switching” de String puede ser más
costosa en términos de ejecución que el Switching de tipos de
datos primitivos. Por lo tanto, es mejor activar el Switch con
String solo en casos de que los datos de control ya estén en forma
de cadena.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 33
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- String no debe ser NULL: asegúrese de que la expresión en
cualquier instrucción Switch no sea nula mientras se trabaja con
cadenas para evitar que una NullPointerException sea lanzada en
tiempo de ejecución.
- Case Sensitive – mayúsculas/minúsculas: la instrucción Switch
compara el objeto String en su expresión con las expresiones
asociadas con cada etiqueta de case como si estuviera usando el
método String.equals; en consecuencia, la comparación de objetos
String en sentencias Switch es sensible a mayúsculas y
minúsculas.
- Mejor que if-else: el compilador Java genera bytecode
generalmente más eficiente a partir de sentencias Switch que
usan objetos String que de sentencias if-else anidadas.
Recursos disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos y ejercicios adecuados.
Ejercicio
El Switch termina siendo una excelente variante al uso de
if/else por lo que es importante entrar en detalle de su
correcto uso y aplicación. Te recomiendo realizar los
siguientes ejercicios para fortalecer tus competencias.
(MÓDULO 2 – EJERCICIOS – SWITCH CASE).
¡Inténtalo!
DIPLOMADO EN PROGRAMACIÓN EN JAVA 34
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
TEMA 2
Ciclos
Los ciclos son una estructura de control de total importancia para
el proceso de creación de un programa. Java y prácticamente todos los
lenguajes más populares de la actualidad permiten hacer uso de estas
estructuras. Un ciclo en Java permite repetir una o varias instrucciones
cuantas veces sea necesario, por ejemplo, si se desean escribir los
números del uno al cien no tendría sentido escribir cien líneas de código
mostrando un número en cada una de estas, para eso y para varias
cosas más es útil un ciclo. Un ciclo ayuda a llevar a cabo una tarea
repetitiva en una cantidad de líneas muy pequeña y de forma
prácticamente automática. (programarya, 2018)
Existen diferentes tipos de ciclos o bucles en Java, cada uno tiene
una utilidad para casos específicos. Se tiene en Java las siguientes
estructuras:
- Ciclos For
- Ciclos While
- Ciclos do While
Ciclo For
Los ciclos For (o ciclos para) son una estructura de control cíclica,
que permite ejecutar una o varias líneas de código de forma iterativa (o
repetitiva), pero teniendo control y conocimiento sobre las iteraciones.
En el ciclo For, es necesario tener un valor inicial, una condición y valor
final, y opcionalmente hacer uso del tamaño del "paso" entre cada
iteración del ciclo.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 35
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Es decir, 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.
Ilustración 19: Estructura ciclo For.
Fuente: Eclipse.
Estructura del ciclo For
La estructura del ciclo For se componen de 3 elementos
fundamentales:
- Valor de inicio: determina a partir de qué momento y de qué valor
el ciclo inicia las iteraciones.
- Condicional – Valor de parada: evalúa los casos en que el ciclo
realizará las iteraciones y el momento en qué terminarán.
- Valor de incremento - decremento: realiza un incremento o
decremento al valor de inicio para realizar las iteraciones.
Ilustración 20: Estructura ciclo For detallada.
Fuente: Eclipse.
Al igual que ocurre con las condicionales, dentro de la declaración
de las llaves se ubica respectivamente el código que se desea ejecutar
de forma repetitiva, los componentes que definen la estructura son de
DIPLOMADO EN PROGRAMACIÓN EN JAVA 36
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
acuerdo a cómo se detallan en la ilustración 20, separados por punto y
coma “;”, esa es la estructura recomendaba, aunque hay casos
especiales que por declaración se puede diseñar de forma diferente, por
ejemplo:
- Creación de valor de inicio fuera del ciclo:
- Incremento o decremento dentro del ciclo:
- Sentencias adicionales dentro de la declaración del ciclo:
- Omisión del uso de las llaves:
Los casos anteriores son respetados por Java y su uso no tiene
ninguna afectación en la estructura de funcionamiento, aunque se
recomienda usar la forma tradicional.
Para entender mejor el funcionamiento y aplicación del ciclo para
observa los siguientes ejercicios:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 37
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ejercicios
- Desarrollar un programa que muestre los números pares entre 0 –
20 de forma ascendente.
Para este caso, se conocen de entrada los valores de inicio (0) y
cierre/final del ciclo (20), el ejercicio debe mostrar únicamente valores
pares, el incremento debe ser diferente al visto en los ejemplos de la
estructura (i++) dado que, al declarar el incremento en uno, el ejercicio
imprimiría todos los valores que hay entre 0 y 20 (0,1,2…18,19 y 20); el
ejercicio funcionaría con un incremento unario en el siguiente caso:
Dado que se recorre uno a uno todos los valores, pero
posteriormente válida por medio de la condicional que únicamente
muestre valores divisibles entre 2 (recuerda el uso del módulo “%”) y
cumple la misma función del primer método, aunque con más líneas de
código, lo cual no es eficiente.
Retomando el primer método, el incremento debe ser en (i+=2)
para que las iteraciones se realicen adecuadamente e intervalos de dos
(2) en dos (2) hasta el valor de parada que será (20).
DIPLOMADO EN PROGRAMACIÓN EN JAVA 38
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- ¿Cómo sería el ejemplo anterior descendentemente? Es decir, no
de 0 a 20, sino de 20 a 0.
El ejercicio funciona de igual forma en base a los valores que se
terminan para el funcionamiento correcto del ejercicio, el valor de inicio
cambiaría a (20) para realizar el decremento, la condición de parada se
realizará cuando el valor de inicio llegue a (0) y ya no se realiza un
incremento gradual de dos (2) en dos (2), sino un decremento en los
mismos valores.
- Desarrollar un programa que permita contar cuántos números
entre 1 y 1000 son múltiplos de 7, mostrar el resultado final.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 39
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
En el desarrollo de este ejercicio entra en uso un concepto muy
común en el uso de ciclos, el cuál son los contadores, que no son más
que variables que se incrementan consecutivamente según el valor que
se determine, la implementación se realiza declarando la variable
contadora fuera del ciclo ¿Por qué?, si se declara dentro del ciclo pierde
completamente su uso y funcionabilidad, el ciclo al ser una estructura
iterativa, declararía la variable las X veces que fueron determinadas en
el ciclo y el valor se reiniciaría por cada iteración, al ser declarado fuera,
el uso se limita sólo al ciclo.
Los valores del ciclo para este caso son: en el inicio empezará en
(1) y el valor de parada será (1000), el incremento será gradual en el
para recorrer todos los valores y la condicional interna del ciclo
determinará los múltiplos de 7 y realizará el incremento del contador, al
final del ciclo y la condicional por defecto, se encuentra respectivamente
el valor de impresión.
- Desarrollar un problema que imprimir las tablas de multiplicar del
1 al 10 con su respectivo resultado.
¿Se puede tener un ciclo dentro de un ciclo?
DIPLOMADO EN PROGRAMACIÓN EN JAVA 40
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
El uso de un ciclo dentro de un ciclo es una operación que se
puede realizar con normalidad dentro del programa y opera de la
siguiente forma:
Detenidamente el uso de un ciclo (1) dentro de otro ciclo (2)
condiciona a que éste (2) se repita las veces que (1) tenga expresadas.
Como se observa en el ejemplo anterior, el ciclo (1) cuenta con 2
iteraciones, al igual que el ciclo (2) y se ejecuta de la siguiente forma:
- Primera ejecución del ciclo (1):
Ciclo 1
- Primera ejecución del ciclo (2):
Ciclo 1
Ciclo 2
- Segunda ejecución del ciclo (2):
Ciclo 1
Ciclo 2 Ciclo 2
DIPLOMADO EN PROGRAMACIÓN EN JAVA 41
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- Segunda ejecución del ciclo (1) – reinicio del ciclo (2):
Ciclo 1 Ciclo 1
Ciclo 2 Ciclo 2
- Primera ejecución del ciclo (2):
Ciclo 1 Ciclo 1
Ciclo 2 Ciclo 2 Ciclo 2
- Segunda ejecución del ciclo (2) – fin del ciclo (1):
Ciclo 1 Ciclo 1
Ciclo 2 Ciclo 2 Ciclo 2 Ciclo 2
El proceso y resultado de las tablas de multiplicar es sencillo en
ambos ciclos se tienen en los valores y las características para operar,
véase: Ejemplo tabla de multiplicar del 1.
Ciclo 1 - I Ciclo 2 - J Resultado
1 1 1
1 2 2
1 3 3
1 4 4
1 5 5
1 6 6
1 7 7
1 8 8
1 9 9
1 10 10
El ciclo (1) con la variable I proporciona la tabla que se está
evaluado y el ciclo (2) con la variable J proporciona los valores que se
deben multiplicar de forma que por cada iteración del ciclo (1) se
obtiene el resultado gracias al ciclo (2) con una simple multiplicación.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 42
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Recursos disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos y ejercicios adecuados.
Ejercicio
El ciclo for ayuda a realizar actividades muy repetitivas y
realizar operaciones con volumenes de datos grandes. Te
recomiendo realizar los siguientes ejercicios para
fortalecer tus competencias. (MÓDULO 2 – EJERCICIOS
– CICLO FOR). ¡Inténtalo!
DIPLOMADO EN PROGRAMACIÓN EN JAVA 43
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ciclo While
Los ciclos While (o ciclos mientras) son una estructura de control
cíclica, que permite ejecutar una o varias líneas de código de forma
iterativa (o repetitiva) al igual que el ciclo for, pero teniendo control y
conocimiento sobre las iteraciones. En el ciclo For, era necesario tener
un valor inicial, una condición y valor final, en el ciclo While únicamente
se tiene control del ciclo por medio de una condicional en la declaración
que determina sí el ciclo continúa o se detiene, por lo que la sintaxis es
más simple.
Es decir, un ciclo While es una estructura iterativa para ejecutar
un mismo segmento de código, con la particularidad de que en la
mayoría de los casos se desconoce la cantidad de veces deseada iterar
por el hecho de no tener un valor de inicio y un valor de parada, puesto
que sí se conoce la cantidad de veces que se desea iterar es más simple
el uso del ciclo for.
Ilustración 21: Estructuras ciclo While.
Fuente: Eclipse.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 44
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Estructura del ciclo While
La estructura del ciclo While se componen principalmente de una
condición que tiene que tomar un valor booleano (verdadero o falso). Si
este valor es verdadero, se ejecutará la sentencia. Concluida esta acción
se vuelve a evaluar la condición. Proseguirán los ciclos hasta que la
condición cambie a falso.
Esta es una estructura de iteración preprueba, es decir primero se
evalúa la condición antes de realizar cualquier acción. Si de entrada la
condición es falsa nunca ejecutará el conjunto de sentencias.
Al igual que ocurre con las condicionales, dentro de la declaración
de las llaves se ubica respectivamente el código que se desea ejecutar
de forma repetitiva en caso de obtener un resultado verdadero, los
componentes que definen la estructura son de acuerdo a cómo se
detallan en la ilustración 21, una variable para el control de la
condicional, la respectiva y característica condicional (el punto más
importante) y finalmente la iteración (incremento, decremento o
cambio), esta es la estructura recomendaba.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 45
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ejercicios
- Desarrollar un programa que imprima los números impares entre
1 y 25.
Este caso tiene un funcionamiento simple y una aplicación similar
a los ejercicios desarrollados con la estructura del ciclo for; el valor de
inicio y final del ciclo lo determina el ejercicio (1 – 25), la condición
principal que se debe determinar dentro del While debe ser recorrer el
ciclo siempre y cuando se cumpla la condición (ser menor o igual a 25),
el incremento como se especifica en la estructura debe ser dentro del
mismo ciclo y gradualmente en uno (1) es decir (i++). Dentro de las
sentencias a ejecutar dentro del ciclo se encuentra la condicional que
determina qué número es impar por medio del módulo (%) y el operador
de diferencia (! =) dado que un número entero cuyo módulo sea
diferente a 0 significa que es un número impar.
- Desarrollar un programa que, dada una palabra, descomponer
todos sus caracteres.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 46
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Hay dos métodos nuevos que se aplican para solucionar este
ejercicio y que son muy útiles, éstos son:
- Length (): Devuelve el número de caracteres del String, vector y
otras estructuras de datos.
Se debe tener en cuenta que el método al igual que lo hace el
charAt, reconoce el espacio como un carácter.
Palabra
P O L I T É C N I C O D E C O L O M B I A
23 Caracteres
- charAt (): Devuelve el carácter de una posición del String.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 47
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Para describirse mejor el método charAt, este se aplica sobre
variables de tipo String y se encarga de descomponer la variable en
posiciones de 0 a N-1 (N siendo el número de caracteres) a las cuales se
puede acceder por medio de un índice (un número asignado a la
posición) por ejemplo:
Palabra
D I E G O
Posiciones
0 1 2 3 4
La palabra “Diego” está compuesta por 5 caracteres por lo que
debe tener 5 posiciones asignadas a cada carácter (Recordar que
siempre se empieza desde 0) como se observa en la tabla), ¿cómo sería
el código?
Lo primero a tener en cuenta es el uso correcto de las posiciones y
evitar el desborde en el recorrido de la palabra, el desborde se presenta
DIPLOMADO EN PROGRAMACIÓN EN JAVA 48
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
al buscar una posición que no existe dentro de la palabra. Por ejemplo,
como se observa en la tabla, la palabra “Diego” cuenta con 5 caracteres,
pero la posición 5 no existe (Recuerda el N-1) y arroja lo siguiente al
ejecutar:
Java se sale del rango que se tiene en la palabra y realiza una
excepción de tipo: StringIndexOutOfBoundsException.
Determinar la condicional dentro del ciclo define el correcto
funcionamiento del ejercicio, permite aclarar el caso final de parada del
ciclo y evita el desbordamiento en el recorrido de la palabra.
Otra característica a tener en cuenta es el reconocimiento del método
charAt como un carácter al espacio en blanco.
- Desarrollar un programa que genere números aleatorios entre 1 y
50 y se detenga cuando genere un múltiplo de 10.
Este es uno de los casos donde la implementación del ciclo While
es más efectiva, dado que no se conoce cuántas veces debe iterar el
ciclo, pero sí se conoce el caso de parada, un ciclo for no tendría la isma
funcionabilidad que el While por su estructura:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 49
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Para la solución de este ejercicio se utilizará lo que se conoce
como banderas, las banderas son variables booleanas que cambian
cuando se cumplen ciertas características que se determine en el
código, en este caso la bandera será la variable X inicializada en
verdadero (para realizar la primera iteración del ciclo) y el cambio de la
bandera a X se dará cuando el número generado sea un múltiplo de 10
(Recordar el uso del módulo). Para generar un número aleatorio se
utiliza como se ha visto la clase Math con su método random para
generar los números entre 1 y 50.
La ejecución del ejercicio termina cuando inmediatamente
encuentre el primer múltiplo de 10, dado que se desconoce en qué
momento se generará, se utiliza el ciclo While y la bandera.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 50
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Recursos disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos y ejercicios adecuados.
Ejercicio
El ciclo while es otra de las estructuras de iteración que
ayuda a la hora de codificar, realizar actividades muy
repetitivas. Te recomiendo realizar los siguientes
ejercicios para fortalecer tus competencias. (MÓDULO 2
– EJERCICIOS – CICLO WHILE). ¡Inténtalo!
DIPLOMADO EN PROGRAMACIÓN EN JAVA 51
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ciclo do While
Esta estructura de iteración cumple el mismo objetivo de la
estructura While con la variante que el ciclo do While ejecuta cuando
menos una vez antes de evaluarse la condición del ciclo por lo que
siempre se tendrá una iteración así el ciclo nunca haya entrado en
ejecución.
Ilustración 22: Estructuras ciclo do While.
Fuente: Eclipse.
Estructura del ciclo do While
La estructura del do ciclo While cuenta con los mismos
componentes del ciclo While en cuando a su forma de funcionar, con la
implementación del do, que se encarga de almacenar las sentencias que
se ejecutarán en todas las iteraciones para su posterior ejecución.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 52
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Esta es una estructura de iteración - prueba, es decir primero se
ejecutan las sentencias del ciclo una vez y después se evalúa la condición
antes de realizar las iteraciones esperadas. Si de entrada la condición es
falsa, se tendrá una ejecución previa al menos.
Al igual que ocurre con las condicionales, dentro de la declaración
de las llaves respectivas del do, se ubica el código de las sentencias que
se desean ejecutar de forma repetitiva en caso de obtener un resultado
verdadero, los componentes que definen la estructura son de acuerdo a
cómo se detallan en las ilustraciones 20, una variable para el control de
la condicional, un bloque encargado de ejecutar las sentencias y
finalmente la respectiva y característica condicional del ciclo.
Recursos disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos y ejercicios adecuados.
Ejercicio
El ciclo do while representa una pequeña variante del ciclo
while. Te recomiendo realizar los ejercicios resueltos con
el uso del ciclo for y while, pero aplicando la estructura de
iteración do while.¡Inténtalo!
DIPLOMADO EN PROGRAMACIÓN EN JAVA 53
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
TEMA 3
Vectores
Los vectores son una estructura de datos que permite almacenar
un grupo de datos de un mismo tipo. También son conocidos
popularmente como arrays.
También es habitual llamar matrices a los vectores
que trabajan con dos dimensiones.
Ilustración 23: Formas de declarar un vector.
Fuente: Eclipse.
Estructura de un vector
- Los elementos de un vector o array se empiezan a numerar en el
0, y permiten gestionar desde una sola variable múltiples datos
del mismo tipo.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 54
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- Al igual que en la aplicación del método charAt, en los arreglos
cada dato almacenado le corresponde un índice, dado que, a partir
de los índices, se operan los vectores.
Estudiantes[]
"Juan" "Stiven "Andres"
Posiciones
0 1 2
- El tamaño del vector no puede ser re definido.
- Los vectores pueden ser de N posiciones, siendo N cualquier
número entero.
- Los vectores inicializados sin datos, se representan de la siguiente
forma por defecto:
1. Vectores de números, se inicializan en 0 los valores de las
posiciones.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 55
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
2. Vectores de cadenas de texto, se inicializan en vacío o null los
valores de las posiciones.
3. Vectores de booleanos, se inicializan en false los valores de las
posiciones.
- Los vectores se pueden declarar únicamente o declarar e inicializar
como ocurre con las variables.
- Para el uso de vectores es habitual utilizar ciclos para realizar las
operaciones dentro de los mismos, dado que los ciclos permiten
definir índices que pueden ser aplicados dentro de los vectores.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 56
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ejercicios
- Desarrollar un programa que, mediante el uso de dos vectores,
permita almacenar las 5 notas de un estudiante para calcular su
promedio final, los valores para calcular el promedio se
encuentran en un vector a parte que contiene los porcentajes
asignados a cada nota.
Porcentaje
Nota 1 Nota 2 Nota 3 Nota 4 Nota 5
20% 10% 30% 20% 20%
DIPLOMADO EN PROGRAMACIÓN EN JAVA 57
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
El ejercicio opera de la siguiente forma, se deben implementar dos
estructuras de vectores para almacenar los siguientes datos:
- Las notas del estudiante, que en este caso son 5 en un vector
double dado que las notas tienen coma flotante.
Notas
4,5 3,2 5 1,5 4,3
Posiciones
0 1 2 3 4
- El porcentaje asignado a cada nota, son 5 y asignados a un vector
int por el tipo de datos que va a almacenar.
Porcentaje
Nota 1 Nota 2 Nota 3 Nota 4 Nota 5
20% 10% 30% 20% 20%
Posiciones
0 1 2 3 4
La fórmula para obtener el promedio es simple, se conoce la
cantidad de notas, el porcentaje asignado a cada nota y el valor de las
notas, con una simple operación aritmética se puede realizar:
Se vuelve hacer aplicación de los contadores/acumuladores,
dentro de la variable promedio se realizarán todas operaciones iteración
tras iteración y todos los valores estarán almacenándose dentro de la
variable promedio, igual que ocurría en los casos de los contadores con
la expresión (i++). Las notas están dentro del vector y por medio del
ciclo for se acceden a los datos de los vectores para poder operar, el
comportamiento de la variable promedio sería el siguiente.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 58
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Variable Promedio
Iteraciones
0 1 2 3 4
0,9 1,22 2,72 3,02 3,88
Total
4
En la tabla se evalúa la nota multiplicada por el porcentaje dividido
por 100 (Para trabajar en términos de porcentaje 0.20, 0.30, etc) y el
total redondeado al entero mayor sería 4.
- Desarrollar un ejercicio que, dado un vector de 5 nombres, cambie
todas las letras de los nombres por números, de manera que el
nombre termine estando compuesto por sólo números, por
ejemplo:
1. “DIEGO” – “129851”
2. “JUAN” – “6731”
Observe la siguiente tabla para definir el valor en número de cada
letra.
A B C D E F G H I J
1 2 3 4 5 6 7 8 9 10
K L M N Ñ O P Q R S
11 12 13 14 15 16 17 18 19 20
T U V W X Y Z Caracteres -
21 22 23 24 25 26 27 Valor
DIPLOMADO EN PROGRAMACIÓN EN JAVA 59
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Este es un ejercicio un grado de dificultad más alto a los ejercicios
pasados, dado que se implementan todos los conocimientos adquiridos
hasta el momento para su correcto funcionamiento, hay condicionales,
ciclos, vectores, contadores, concatenación y variables.
En base a la tabla proporcionada donde se encuentran los valores
numéricos asignados a cada carácter, se determinan 2 vectores con esa
información:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 60
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- El vector que define los caracteres del abecedario.
- El vector que define los valores numéricos asignados a los
caracteres del abecedario.
Es fácil manejar la relación de ambos vectores, dado que tienen la
misma longitud, por ende, el valor de la posición 0 del vector de
caracteres, le corresponde el número 0 del vector de números.
Y adicionalmente, el vector con los nombres correspondientes a
operar, que para el caso práctico son 5. Además, hay variables del caso
que se deben declarar para auxiliar la operación correcta del ejercicio.
- La variable X para administrar el ciclo While.
- La variable auxiliar nombreAuxiliar que permitirá almacenar el
nombre en valores numéricos.
Para el ejercicio hay definidos 3 estructuras de iteración, 2 ciclos
for y 1 ciclo While.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 61
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- El ciclo While recorrerá el vector de los nombres.
- El ciclo for número uno recorrerá los caracteres de cada nombre.
- El ciclo for número dos recorrerá los caracteres del vector de
caracteres del abecedario ya definido.
Una condicional para determina qué carácter del nombre le
equivale qué número ya establecido:
La condicional opera gracias al funcionamiento de los 3 ciclos de la
siguiente forma:
- Representa el valor de un nombre determinado por la
iteración del ciclo While.
- Representa los caracteres del nombre que se
encuentra en iteración (Recordar: charAt permite recorrer todos
los caracteres de un String en este caso por medio de un índice).
DIPLOMADO EN PROGRAMACIÓN EN JAVA 62
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- Representa los caracteres definidos en el vector del
abecedario.
La operación de concatenación que representa el funcionamiento
correcto del ejercicio es la siguiente:
La variable auxiliar declarada he inicializada previamente permite
realizar la concatenación de los números de la siguiente forma.
NombreAuxiliar
Valores
0 012 01298 0129808 0129808945
La variable va concatenando (No sumando) todos los valores que
conforman un nombre hasta llegar al final del recorrido.
Finalmente se reemplaza el nombre de la iteración actual con el
nombre creado en base a números:
Se imprime el resultado del nombre nuevo:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 63
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Se reinicia la variable auxiliar para la próxima iteración:
Se realiza el incremento para las próximas iteraciones:
disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos y ejercicios adecuados.
Ejercicio
Los vectores son una estructura muy util para el
almacenaje de grupos de datos en un mismo lugar de
manera muy simple, su sintaxis es clara, su forma de
operar es sencilla y la implementación permite realizar
grandes tareas de forma muy ágil, por eso te propongo
realizar los siguientes ejercicios. (MÓDULO 2 –
EJERCICIOS CON VECTORES) ¡Inténtalo!
DIPLOMADO EN PROGRAMACIÓN EN JAVA 64
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
TEMA 4
Matrices
Las matrices son una estructura de datos que permite almacenar
un grupo de datos de un mismo tipo al igual que ocurre con los
vectores, pero de una forma bidimensional de forma que se representan
como una tabla con un vector para filas y otro para columnas.
Ilustración 24: Formas de declarar una matriz.
Fuente: Eclipse.
Estructura de una matriz
- Los elementos de una matriz o array bidimensional se empiezan a
numerar en el 0,0 (Haciendo referencia a las filas y las columnas),
y permiten gestionar desde una sola variable múltiples datos del
mismo tipo.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 65
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
- La cantidad de datos que se pueden almacenar los determinan las
filas y las columnas por medio de la multiplicación de sus valores,
por ejemplo:
- Matriz [2][8]: Permitirá almacenar 16 valores.
- Matriz [3][15]: Permitirá almacenar 45 valores.
- Cada dato almacenado dentro de la matriz le corresponde dos
índices, uno que determina en qué fila se encuentra el dato y otro
en qué columna, dado que, a partir de los índices, se acceden a
los datos.
Matriz 0 1 2 3
0 Diego Juan
1 Frank
2 Stiven
3 Ana
En la representación anterior de una matriz 4*4, tiene
almacenados 5 datos en las siguientes posiciones:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 66
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Diego [0][0]
Juan [0][1]
Frank [1][3]
Stiven [2][1]
Ana [3][2]
- El tamaño de la matriz no puede ser re definido.
- Las matrices pueden ser de N*M posiciones, siendo N y M
cualquier número entero.
- Las matrices inicializadas sin datos, se representan de la siguiente
forma por defecto:
1. Matrices de números, se inicializan en 0 los valores de las
posiciones.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 67
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
4. Matrices de cadenas de texto, se inicializan en vacío o null los
valores de las posiciones.
5. Matrices de booleanos, se inicializan en false los valores de las
posiciones.
- Las matrices se pueden declarar únicamente o declarar e
inicializar como ocurre con las variables.
- Para el uso de matrices es habitual utilizar ciclos para realizar las
operaciones dentro de los mismos, dado que los ciclos permiten
definir índices que pueden ser aplicados dentro de las matrices,
sólo que, a diferencia de los vectores, se deben usar dos ciclos
para recorrer la matriz, uno se encarga de recorrer las filas y otro
de recorrer las columnas. Ejemplo de matriz 3*3
DIPLOMADO EN PROGRAMACIÓN EN JAVA 68
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ejercicios
- Desarrollar un programa que dada una matriz de 5*4, almacene
números aleatorios entre 0 y 100 en todas sus posiciones. Luego
mostrar la matriz en forma de tabla.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 69
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Este ejercicio es interesante para determina correctamente cómo
operan las matrices, puede contener menos líneas y ser más eficiente,
pero para el caso de explicación se desarrolló así:
El ejercicio determina el tamaño de la matriz que será de 5 – Filas
* 4 – Columnas respectivamente, por lo que podrá almacenar un
máximo de 20 valores en su estructura.
Los ciclos son los encargados de operar las matrices, como se
describía en su estructura, en la mayoría de los casos se usan dos (2)
para el recorrido, uno que se encarga de las filas y otro de las
columnas:
El primer ciclo se encarga de recorrer las filas, 5 para el caso en
mención (Se utiliza el ciclo for dado que se conoce el número de
iteraciones que se deben realizar), y dentro de este un segundo ciclo
encargado de recorrer las columnas, 4 para el caso en mención como se
demostraba el funcionamiento de un ciclo dentro de un ciclo en la
estructura for, el según ciclo opera cuantas veces el primero esté
definido. Por ende, el segundo ciclo de cuatro (4) iteraciones, se repetirá
cinco (5) veces como está definido el primero.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 70
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Ciclo 1 - Iteración 1
Ciclo 2 Iteración 1 Ciclo 2 Iteración 2 Ciclo 2 Iteración 3 Ciclo 2 Iteración 4
Ciclo 1 - Iteración 2
Ciclo 2 Iteración 1 Ciclo 2 Iteración 2 Ciclo 2 Iteración 3 Ciclo 2 Iteración 4
Ciclo 1 - Iteración 3
Ciclo 2 Iteración 1 Ciclo 2 Iteración 2 Ciclo 2 Iteración 3 Ciclo 2 Iteración 4
Ciclo 1 - Iteración 4
Ciclo 2 Iteración 1 Ciclo 2 Iteración 2 Ciclo 2 Iteración 3 Ciclo 2 Iteración 4
Ciclo 1 - Iteración 5
Ciclo 2 Iteración 1 Ciclo 2 Iteración 2 Ciclo 2 Iteración 3 Ciclo 2 Iteración 4
Como se muestra en la tabla anterior por cada iteración del ciclo
1, se obtendrán 4 iteraciones del ciclo 2, se forma que el resultado de
iteraciones totales del ciclo 2 será de 20, el mismo valor de datos
esperados para almacenar.
En los parámetros que recibe la matriz para el almacenaje de
datos, están los dos grupos de corchetes, uno encargado para delimitar
las filas con los índices del primer ciclo y el segundo delimita las
columnas a partir del segundo ciclo con sus respectivos índices, para la
inserción, dado que son números aleatorios entre un rango especificado,
se implementa la clase Math, con el método random para ser generados
los números.
Posteriormente a la inserción de los datos, se encuentra la
impresión de los mismos.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 71
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
El proceso es similar a la inserción dos ciclos recorren la matriz
por filas y columnas e imprimen los respectivos datos en las posiciones
determinadas. Para la impresión en forma de tabla, se adiciona una
instrucción de impresión vacía para hacer saltos de líneas cada que se
recorra una fila.
- En base al ejercicio anterior, realizar las siguientes operaciones:
1. Suma de todos los valores.
2. Resta de todos los valores.
3. Multiplicación de todos los valores.
4. Raíz cuadrada de la suma de todos los valores.
5. División de la multiplicación por la suma.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 72
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
DIPLOMADO EN PROGRAMACIÓN EN JAVA 73
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
En base al código del ejercicio anterior simplemente se deben
realizar unas variantes:
Primer se deben declarar las variables en las que se van a
almacenar las operaciones a realizar en base a la matriz:
- Una variable entera para la suma inicializada en 0 (Para poder
realizar la acumulación en base a la matriz)
- Una variable entera para la resta inicializada en 0 (Para poder
realizar la acumulación en base a la matriz)
- Una variable entera inicializada en 1 para la multiplicación (Se
inicializa en 1 dado que, si se hace en 0, los resultados de las
multiplicaciones serían 0)
- Una variable de coma flotante para la división
- Una variable de coma flotante para la raíz
La acumulación de datos se puede hacer en dos lugares:
- En la inserción
- En la impresión
En la inserción exactamente después de realizar el guardado de
los datos en la matriz, se realizaría la acumulación en las variables
declaradas he inicializadas previamente en base a los índices del ciclo.
En la impresión, en el mismo recorrido de los ciclos post impresión
o pre impresión, funcionaría de igual forma los acumuladores, véase:
DIPLOMADO EN PROGRAMACIÓN EN JAVA 74
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
En base a los acumuladores se obtienen los valores finales de la
suma, la resta y la multiplicación de todos los valores, ya que, con estos
se obtendrán:
- La división
- La raíz
Dos operaciones aritméticas sencillas para posteriormente mostrar
los resultados en pantalla.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 75
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas necesarias en cada
competencia, es muy importante que tengas acceso a los
recursos didácticos y ejercicios adecuados.
Ejercicio
Las matrices son una excelente alternativa para el
almacenamiento de datos y su implementación en
sencilla. Te propongo realizar los siguientes ejercicios.
(MÓDULO 2 – EJERCICIOS CON MATRICES)
¡Inténtalo!
Recursos disponibles para el aprendizaje
Para desarrollar las habilidades y destrezas
necesarias en cada competencia, es muy
importante que tengas acceso a los recursos
didácticos adecuados.
Entonces, si necesitas reforzar esta
información, te sugerimos revisar nuevamente
los Vídeos de Apoyos, disponibles en el
campus virtual, indicados en las lecturas
anteriores. Además, recuerda que puede
consultar las Fuentes Documentales que
aparecen en esta guía, particularemnte, en el
apartado de Referencias Bibliográficas.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 76
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
MATERIAL COMPLEMENTARIO
Es importante continuar adquiriendo conocimiento y no frenar
el proceso de aprendizaje, por esto es importante complementar lo
aprendido en esta guía con nuevos conceptos, definiciones y
caracteristica, sugerimos revisar el siguiente material:
Hemos conocido varios métodos de la clase String como
.lenght, charAt, entre otros, es importante conocer y determinar la
aplicación de todos los métodos que ofrece la clase. String Class
Java. Disponible en:
https://docs.oracle.com/javase/9/docs/api/java/lang/String.html
DIPLOMADO EN PROGRAMACIÓN EN JAVA 77
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
ASPECTOS CLAVES
Recuerda tener muy presente los conceptos visto en esta guía
número 2 dado que en el trascurso del diplomado se tendrán en
cuenta continuamente para su implementación.
Recuerda algunos aspectos abordados en el módulo:
Las condicionales permiten evaluar sentencias booleanas para
la ejecución de bloques de código independientes.
Existen varios tipos de condicionales, recuerda que la
aplicación de cualquier de estas depende de la necesidad a
desarrollar.
- If.
- If/else.
- Else/if.
- Anidadas.
- Operador ternario.
- Switch case.
El uso correcto de las condicionales está de la mano con la
estructura de la tabla de operadores lógicos y de relación del
módulo 1.
Los ciclos ahorran líneas de código y realizan tareas repetitivas
de forma controlada, por lo que las posibilidades para su
aplicación son infinitas.
La diferencia entre el ciclo While y el ciclo do While radica en
que el ciclo do While se ejecuta cuando menos una vez pese a
que no se cumpla las iteraciones del ciclo, a diferencia While
DIPLOMADO EN PROGRAMACIÓN EN JAVA 78
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
ejecuta o no ejecuta.
El ciclo While y do While están destinados para estructuras de
iteración donde no se conoce hasta cuándo se deben realizar
iteraciones, a diferencia del ciclo for, que debe tener un valor
establecido para las iteraciones dentro de su declaración.
Los vectores y las matrices permiten almacenar un gran
volumen de datos, pero recuerda que deben ser del mismo
tipo.
Los vectores y matrices una vez declaradas, sus longitudes no
pueden ser modificadas.
La mejor alternativa para recorrer vectores y matrices son los
ciclos, y en especial el ciclo for.
¡Felicidades! Has concluido con la lectura de la
Guía Didáctica N°2. Así que ya puedes realizar la Evaluación
2.
DIPLOMADO EN PROGRAMACIÓN EN JAVA 79
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
REFERENCIAS BIBLIOGRÁFICAS
Arkaitzgarro. (12 de 10 de 2018). Arkaitzgarro. Recuperado el 12 de 10 de 2018, de Arkaitzgarro:
https://www.arkaitzgarro.com/java/capitulo-4.html
Arkaitzgarro. (26 de 10 de 2018). Arkaitzgarro. Recuperado el 266 de 10 de 2018, de Arkaitzgarro:
https://www.arkaitzgarro.com/java/capitulo-5.html
javadesdecero. (09 de 06 de 2018). javadesdecero. Obtenido de javadesdecero:
https://javadesdecero.es/basico/sentencia-switch-java-ejemplo/
michelletorres. (01 de 11 de 2018). michelletorres. Recuperado el 01 de 11 de 2018, de
michelletorres: https://michelletorres.mx/como-funcionan-las-condicionales-anidadas/
Oracle. (24 de 10 de 2018). Oracle Docs. Recuperado el 24 de 10 de 2018, de Oracle Docs:
https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html
programarya. (05 de 11 de 2018). programarya. Obtenido de programarya:
https://www.programarya.com
DIPLOMADO EN PROGRAMACIÓN EN JAVA 80
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores
Esta guía fue elaborada para ser utilizada con fines didácticos
como material de consulta de los participantes en el Diplomado
Virtual en Programación en Java del Politécnico de Colombia,
especialmente, a los técnicos, tecnólogos y profesionales de
carreras afines, estudiantes de todas las carreras, empíricos, y
público en general con conocimientos básicos en informática que
intentan entrar en el mundo de la programación, que se
desempeñen o no en las áreas de TIC de cualquier tipo de
organización y que deseen obtener las competencias y
habilidades necesarias para conocer los fundamentos prácticos
del lenguaje de programación Java para la aplicación y desarrollo
de algoritmos y aplicaciones, y solo podrá ser reproducida con
esos fines. Por lo tanto, se agradece a los usuarios referirla en
los escritos donde se utilice la información que aquí se presenta.
Derechos reservados - POLITÉCNICO DE COLOMBIA, 2018
Medellín, Colombia
DIPLOMADO EN PROGRAMACIÓN EN JAVA 81
| GUÍA DIDÁCTICA 2- Estructuras de iteración, condición y vectores