Taller de
Programación
Imagen obtenida de: https://www.pixelstalk.net/wp-content/uploads/images6/Abstract-Wallpaper-HD-Free-download.png
Dudas de la clase anterior
Anidamiento
de condicional Ventajas del
simple anidamiento
Anidamiento
de estructuras
Anidamiento
de condicional
doble
Imagen obtenida de:
https://www.ddday.org/wp-content/uploads
/2021/05/Raised-Hands-and-Questions- 2
01.png
Dudas de la clase anterior
Anidamiento
de condicional Ventajas del
simple anidamiento
Anidamiento
de estructuras
Anidamiento
de condicional
doble
Imagen obtenida de:
https://www.ddday.org/wp-content/uploads
/2021/05/Raised-Hands-and-Questions- 3
01.png
Dudas de la clase anterior
Anidamiento
de condicional Ventajas del
simple anidamiento
Anidamiento
de estructuras
Anidamiento
de condicional
doble
Imagen obtenida de:
https://www.ddday.org/wp-content/uploads
/2021/05/Raised-Hands-and-Questions- 4
01.png
Dudas de la clase anterior
Anidamiento
de condicional Ventajas del
simple anidamiento
Anidamiento
de estructuras
Anidamiento
de condicional
doble
Imagen obtenida de:
https://www.ddday.org/wp-content/uploads
/2021/05/Raised-Hands-and-Questions- 5
01.png
Estructura Condicional
switch-case (I)
Semana 04 – Sesión 07
Conocimientos previos
Observa y responde:
• ¿Qué muestran las
imágenes?
• ¿Entre cuántas opciones se
puede elegir?
• ¿Qué estructura condicional
puede representar estos
casos?
Imagen obtenida de:
https://www.pngitem.com/pimgs/m/384-3840589_stylish-restaurant-menu-template-preview-flyer-hd-png.png
https://as2.ftcdn.net/v2/jpg/01/30/82/11/1000_F_130821110_HPwqH7fIMI4nWaloiFFtTgUY5md2s9X0.jpg 7
https://static.wixstatic.com/media/cfc402_7114146ff4614b8ebda16e433d4b94f6~mv2.jpg/v1/fit/w_660%2Ch_440%2Cal_c%2Cq_80/file.jpg
Logro de aprendizaje
Al finalizar la sesión, el estudiante
desarrolla programas utilizando
estructuras switch-case utilizando un
IDE Java para resolver problemas
condicionales o de decisión múltiple.
Imagen obtenida de:
https://img.freepik.com/free-vector/clever-man-student-standing-books-stack-with-flag-self-learning-personal-improvement-knowledge-obtaining-educational-achievement_335657-3461.jpg
8
Utilidad
• ¿Qué expresa la imagen?
• La condición de selección ¿es
simple, doble o múltiple?
• ¿Cómo podría servirte utilizar
condiciones múltiples en
situaciones reales?
Expresar condiciones múltiples
en Java.
Imagen obtenida de:
https://www.a2hosting.com/images/uploads/knowledgebase_images/kb-wordpress-language-plugin.png 9
contenido 1
Estructura Condicional Múltiple
2
Sentencia switch-case
3
Práctica
10
contenido 1
Estructura Condicional Múltiple
2
Sentencia switch-case
3
Práctica
11
1
Estructura Condicional Múltiple
Estructura Condicional Múltiple
• Permite evaluar una expresión que puede
tener N valores distintos (Joyanes, 2008)
• Según se elijan estos valores, se podrán
ejecutar una de las N alternativas (Joyanes,
2008)
• Cuando decimos N valores o alternativas
nos referimos de 3 a más.
• Se denomina así pues existen muchas
condiciones.
Imagen obtenida de: https://bmkltsly13vb.compat.objectstorage.ap-mumbai-1.oraclecloud.com/cdn.dailymirror.lk/media/images/rt(2).jpg 12
1
Estructura Condicional Múltiple
Estructura Condicional Múltiple
Diagrama de flujo de una
estructura condicional
múltiple en PSeInt.
13
1
Estructura Condicional Múltiple
Flujo de una ECM
a. Se evalúa una expresión.
b. El resultado de la expresión es comparado en
secuencia con cada valor de caso contemplado
(condición)
c. Si la condición se cumple entonces se ejecuta el
código condicional. Si la condición no se cumple
entonces el flujo continúa en el siguiente caso.
d. Si no se cumple ninguna condición, se puede
ejecutar instrucciones por defecto (default)
Imagen obtenida de: https://www.programiz.com/sites/tutorial2program/files/java-switch-case-implementation.png 14
1
Estructura Condicional Múltiple
Condicional Múltiple en Java
Condicional Múltiple
en Java
switch-case switch mejorado
Disponible desde JDK 14
15
contenido 1
Estructura Condicional Múltiple
2
Sentencia switch-case
3
Práctica
16
2
Sentencia switch-case
Sentencia switch-case
Sintaxis switch-case
• switch provee una bifurcación switch (expresión) {
múltiple, lo que habilita a un case valor1:
// código condicional 1
programa a seleccionar entre break;
muchas alternativas. case valor2:
// código condicional 2
• switch es mucho más eficiente break;
que utilizar if anidados. case valorN:
// código condicional N
• Soporta tipos byte, short, int, break;
char, String o enumeraciones. default:
// código por defecto
}
17
2
Sentencia switch-case
Sentencia switch-case. Ejemplo.
int estadoProyecto = 3;
String descripcion = ""; Conocido el valor de la variable, se
compara con cada valor hasta
encontrar la coincidencia y se
switch (estadoProyecto) {
ejecutan las sentencias contenidas
case 0: descripcion = "Creado"; en ese bloque.
break;
case 1: descripcion = "Asignado"; La instrucción break es importante
break; para salir de la estructura y ejecutar
la siguiente sentencia fuera de
case 2: descripcion = “En progreso";
switch.
break;
case 3: descripcion = "Finalizado"; Se hace uso del método
break; toUpperCase() para convertir el
case 4: descripcion = "Cancelado"; mensaje a mayúsculas.
break;
case 5: descripcion = "Suspendido";
Salida:
break;
} El estado del Proyecto es
System.out.println(“El estado del Proyecto es " + descripcion.toUpperCase()); FINALIZADO
18
2
Sentencia switch-case
Instrucciones default y break
• Esta instrucción es opcional.
• El bloque default es ejecutado si no se ha
encontrado ninguna coincidencia.
• Si se incluye, se recomienda colocarlo
como último caso en la estructura switch,
aunque puede colocarse en cualquier posición.
• Si no se incluye, debe cuidarse de no omitir
la instrucción break en los casos evaluados.
19
2
Sentencia switch-case
Instrucciones default y break
• Esta instrucción es opcional.
• La instrucción break ocasiona la salida
incondicional del bloque switch.
• Si no está presente, todas las opciones
subsiguientes serán ejecutadas hasta
encontrar la siguiente instrucción break o hasta
finalizar el bloque switch.
20
2
Sentencia switch-case
default y break. Ejemplo.
int estadoProyecto = 8;
String descripcion = "";
switch (estadoProyecto) { Salida si estadoProyecto = 1
case 0: descripcion = "CREADO";
break; El estado del proyecto es
case 1: descripcion = "ASIGNADO"; asignado
break;
case 2: descripcion = "EN PROGRESO"; Salida si estadoProyecto = 2
case 3: descripcion = "FINALIZADO";
case 4: descripcion = "CANCELADO"; El estado del proyecto es
break;
cancelado
case 5: descripcion = "SUSPENDIDO";
default: descripcion = "DESCONOCIDO"; Salida si estadoProyecto = 8
break;
El estado del proyecto es
}
desconocido
System.out.println("El estado del proyecto es " + descripcion.toLowerCase());
Se hace uso del método toLowerCase()
para convertir el mensaje a minúsculas. 21
2
Sentencia switch-case
Agrupamiento de casos
int scoreNPS = 9;
• Es posible tener Salida si scoreNPS es
switch (scoreNPS) { cualquier valor entre 0 y 6
bloques case case 0:
Detractor
case 1:
vacíos. case 2:
case 3:
• Son útiles para case 4:
case 5: Salida si scoreNPS es 7 u 8
agrupar opciones. case 6:
System.out.println("Detractor"); Pasivo
break;
case 7:
case 8:
System.out.println("Pasivo"); Salida si scoreNPS es 9 o 10
break;
Promotor
case 9:
case 10:
System.out.println("Promotor");
break;
}
22
2
Sentencia switch-case
Optimizando el agrupamiento
int scoreNPS = 9;
switch (scoreNPS) {
case 0:
int scoreNPS = 9;
case 1:
case 2:
switch (scoreNPS) {
case 3:
case 0, 1, 2, 3, 4, 5, 6:
case 4:
System.out.println("Detractor");
case 5:
break;
case 6:
case 7, 8:
System.out.println("Detractor");
System.out.println("Pasivo");
break;
break;
case 7:
case 9, 10:
case 8:
System.out.println("Promotor");
System.out.println("Pasivo");
break;
break;
}
case 9:
case 10:
System.out.println("Promotor");
break;
}
23
contenido 1
Estructura Condicional Múltiple
2
Sentencia switch-case
3
Práctica
24
3
Práctica
Cuestionario
1. ¿Qué se mostrará en pantalla si ejecutamos este código?
int i = 1;
switch(i){
default: A. Error de compilación.
System.out.println("Default"); B. 1
case 1:
System.out.println("1"); C. Default 1 0
break;
case 0: D. Default 1
System.out.println("0");
}
25
3
Práctica
Cuestionario
2. ¿Qué se mostrará en pantalla si ejecutamos este código?
final int ENCENDIDO = 1;
final int APAGADO = 0;
int estado = 1;
switch (estado) { A. Desconocido
case ENCENDIDO:
System.out.println("Encendido"); B. Apagado
break;
default: C. Encendido
System.out.println("Desconocido"); D. Error de compilación
case APAGADO:
System.out.println("Apagado");
} 26
3
Práctica
Cuestionario
3. ¿Qué se mostrará en pantalla si ejecutamos este código?
int i = 97;
switch (i) {
case 95: A. Error de compilación
System.out.print("95");
case 96: B. No imprimirá nada
System.out.print("96");
case 'a': System.out.print("a"); C. 9596abc
case 'b': System.out.print("b");
case 'c': System.out.print("c"); D. Ninguna de las anteriores
}
27
3
Práctica
Cuestionario
4. ¿Qué se mostrará en pantalla si ejecutamos este código?
int edad = 8;
switch (edad) {
case 4: case 5: { A. Error de compilación
String grupo = "Ir al nido";
} B. No imprimirá nada
case 6: case 7: case 8: {
String grupo = "Ir al colegio"; C. Ir al colegio
}
} D. Ninguna de las anteriores
System.out.println(grupo);
28
3
Práctica
Ejercicio 01
La evaluación de un candidato para un puesto de
trabajo resulta en una puntuación entre 0 y 10. Se
desea mostrar una descripción de la evaluación
alcanzada de acuerdo con los siguientes criterios:
• 0-4 → descartado
• 5 → en suspenso
• 6 → aceptable
• 7,8 → notable
• 9, 10 → sobresaliente
Escriba un programa que solicite la puntuación de
un candidato y muestre la descripción que le
Imagen obtenida de: 29
corresponda.
https://www.workitdaily.com/media-library/hiring-managers-looks-to-shake-the-hand-of-a-job-candidate.jpg?id=23564520&width=2000&height=1500&quality=85&coordinates=50%2C0%2C50%2C0
3
Práctica
Ejercicio 02
Hoy en día la cotización del dólar y del
euro son la siguientes:
1 dólar = 3.82 soles
1 euro = 4.17 soles
Escriba un programa que permita la
conversión entre dólares, euros y soles.
El usuario elegirá las monedas de origen
y destino e ingresará el monto a convertir.
Imagen obtenida de: 30
https://www.investopedia.com/thmb/knHvOGMNobhSMkYTlWC3WcupO8s=/1500x1000/filters:fill(auto,1)/GettyImages-1031084282-0a12713ac4234067baa62f6f34a48494.jpg
Resumen de la sesión
• ¿Qué es una condicional múltiple?
• ¿En qué casos se utiliza?
• ¿Cómo trabaja una estructura
switch-case?
• ¿Para qué sirven break y default?
Imagen obtenida de: 31
https://dpemfoco.com.br/wp-content/uploads/2019/08/Departamento-de-Pessoal-em-Foco-Checklist-Check-list-Checklists.png
Bibliografía
• Tanenbaum & Van Steen (2008). Algoritmos y Estructuras de
Datos - Principios y Paradigmas, 2da Edición. Pearson
Education.
• Khalid A. Mughal & Rolf W. Rasmussen (2017). A
Programmer’s guide to Java SE 8 Oracle Certified
Associate.
• Schildt, Herbert (2019). A Java Beginner’s Guide Eighth
Edition. Oracle Press.
• Schildt, Herbert (2019). Java The Complete Reference
Eleventh Edition. Oracle Press.
Imagen obtenida de: 32
https://pngimg.com/d/book_PNG51088.png