Saltar navegación

Condicional 2: switch - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 8 de octubre de 2024 por Stefano C.

30 visualizaciones

Descargar la transcripción

vale voy a grabar esta clase empezamos con un ejercicio sencillo vale lo hacemos normal y 00:00:00
luego vemos una cosa nueva vale entonces tengo este ejercicio me dice dame un número de una 00:00:08
7 y me dice que día de la semana es, vale, ok, scanners, scanners igual a new scanners 00:00:18
de system int, int d es igual a scan.nextint, vale, entonces aquí está mi día, vale, 00:00:25
versión número uno, posiblemente la más feucha, ¿vale? Entonces, si D es uno, si 00:00:43
lunes, elche, si no, vale, si es 2, martes, si es 3, miércoles, 4, jueves, 5, viernes, 00:00:56
Me he aburrido 00:01:45
Mi mamá que son solo 7 00:01:49
Es sábado 00:01:51
Domingo 00:01:56
Y signo 00:01:59
Número equivocado 00:02:03
O ningún día o lo que sea 00:02:09
¿Vale? 00:02:14
Aquí se me ha olvidado poner 00:02:15
Dame un día 00:02:16
Efectivamente 00:02:17
Se hizo 00:02:18
Dame un 00:02:20
Num de 1 a 7 00:02:22
Está fuera de rango 00:02:25
poner lo que queráis entonces pongo 3 miércoles ya está funciona vale esta cosa aquí es fea 00:02:29
vale nunca en un programa fuera de aquí verás esta cosa aquí vale esta es una cosa para un 00:02:44
principiante de programación que ha visto solo if entonces vale para nosotros que hemos visto 00:02:55
Sí, claro 00:03:00
Vale para ir a una empresa 00:03:01
Oye, estamos en una entrevista de empresa 00:03:04
Hazme un programa que hace esto 00:03:06
Sí, mire, pues gracias por haber pasado por aquí 00:03:07
Inténtelo otra vez 00:03:10
¿Vale? 00:03:13
Y no volver 00:03:15
Entonces, esta es la opción número uno 00:03:16
¿Vale? 00:03:20
Opción número dos 00:03:23
Que es igual de fea, pero va a ver 00:03:24
En vez de utilizar 00:03:26
Utilizo if-else 00:03:30
Entonces 00:03:32
Es lo mismo 00:03:33
Pero 00:03:35
Para que veáis también 00:03:37
Que yo antes decía que a mi me gusta más el if 00:03:48
Con dentro el else 00:03:51
Pero 00:03:53
Y aquí tengo que quitar unos cuantos 00:03:55
No se cuantos 00:04:04
Voila 00:04:05
Más bonito 00:04:09
O sea 00:04:11
Hace lo mismo que antes 00:04:13
Lo mismo 00:04:15
¿Vale? Mismo número de comprobaciones, misma cosa, mismo resultado, pero lo miro así y ya es distinto con respecto a antes, ¿vale? 00:04:16
El ELSIF es un comodín, no es que diga, oye, mira, es mejor o peor que el otro, lo mismo, ¿vale? 00:04:28
Pero en determinados casos, como es este de aquí, pues me puede dar un código un poquito más ordenado 00:04:37
Y el código ordenado se aprecia 00:04:44
¿Os acordáis cuando os dije que en las empresas 00:04:46
Hay gente que valora los comentarios 00:04:50
Entonces comenta todo 00:04:53
Y hay gente que en vez dice 00:04:54
No, el código se tiene que poder leer sin hacer comentarios 00:04:56
Eso, ¿vale? 00:05:01
Posiblemente esto es más fácil de leer que otro 00:05:04
Ahora, ¿cuál de los dos se debería utilizar? 00:05:07
Ninguno de los dos 00:05:11
¿Por qué? 00:05:13
Porque Java, para este tipo de cosas, nos proporciona otro condicional, el señor switch. 00:05:14
Cuando tengo, por ejemplo, un entero, un char o en general un tipo primitivo que puede valer varios valores 00:05:29
y en base al valor que vale hacer una cosa u otra, lo que se puede utilizar es el señor switch. 00:05:37
fijaos que está en rojo, por lo tanto es una palabra reservada 00:05:46
le pongo aquí lo que voy a comprobar 00:05:51
sustancialmente me dice, en base a D 00:05:55
haz varias cosas, en el caso 00:06:00
que valga 1, haz esta cosa aquí 00:06:04
en el caso en que valga 2 00:06:09
haz esta otra cosa aquí 00:06:13
Entonces, por ejemplo 00:06:15
Yo podría hacer string 00:06:21
Día es igual a nada 00:06:23
Y decir que día es igual a lunes 00:06:26
1, 2, 3, 4, 5, 6 y 7 00:06:30
Lunes, martes, miércoles, jueves, viernes, sábado y domingo 00:06:47
Porque soy perezoso y no lo quiero escribir entero 00:06:58
¿Vale? 00:07:01
Ya está. 00:07:03
Con esto funciona. 00:07:04
Es más bonito 00:07:07
que el anterior. 00:07:09
Lo pone así. 00:07:15
¿Vale? 00:07:18
Ahora, ¿funciona de verdad? 00:07:18
Vamos a verlo. 00:07:21
Un momento. 00:07:23
Antes déjame, luego lo preguntas. 00:07:24
Si eso, día. 00:07:29
Ahí. 00:07:33
Día. 00:07:34
Sin carácteres demoníacos. 00:07:35
¿Vale? 00:07:36
Vamos a verlo. 00:07:37
Por lo tanto, yo digo, es siete, domingo, perfecto, funciona fenomenal. 00:07:38
Es uno, domingo, perfecto, funciona fenomenal. 00:07:45
¿Cómo no? 00:07:50
Tres, pues domingo. 00:07:51
Yo firmo, ¿eh? 00:07:54
¿No? ¿No os gusta? 00:07:57
¿Cómo funciona el switch? 00:07:59
En realidad, el switch, una vez que ha entrado en uno de los case, ejecuta todos los case que vengan a continuación. 00:08:02
O sea, que si ha entrado en case 1, entonces ejecutaría esto y pondría L, pero luego ejecuta también esto, entonces pondría M, luego ejecuta también esto, pone X. 00:08:13
Entonces al final 00:08:25
Llegaría siempre a ejecutar esto 00:08:27
Y siempre me pondría D 00:08:29
Y de hecho siempre sale D 00:08:31
¿Cómo hago para que 00:08:33
Si ha hecho esto 00:08:35
No vaya a evaluar los que vienen después? 00:08:37
00:08:40
Sí, que sí 00:08:40
Un momento, usando break 00:08:43
¿Sí? 00:08:45
Este comandito de aquí 00:08:48
Que podéis usar también en otros 00:08:49
Bloques 00:08:51
lo que hace es salir del bloque 00:08:53
con esto aquí dice que 00:08:55
si he ejecutado esto 00:08:57
después de haber ejecutado 00:08:59
esto, salta 00:09:01
a otro lado 00:09:03
con esto funciona 00:09:04
lunes 00:09:07
miércoles 00:09:10
ahora, como yo 00:09:13
soy fanático 00:09:16
de los bloques 00:09:18
a mi me gusta así 00:09:19
¿por qué? porque me rendo 00:09:21
Me doy cuenta mejor 00:09:28
Dónde empieza y dónde acaba cada case 00:09:30
¿Vosotros no lo queréis poner? 00:09:33
Pues no lo pongáis, haced lo que queráis 00:09:36
¿Vale? 00:09:38
¿Sí? 00:09:39
Pues es 00:09:44
Esto, él me lo escribe así 00:09:44
Si os gusta 00:09:48
Si os gusta 00:09:51
Con magia 00:09:52
Mi consejo 00:09:55
Intentad acostumbraros 00:10:01
A que 00:10:03
las cosas parezcan 00:10:04
sean así 00:10:07
porque luego podéis utilizar 00:10:08
la magia, en cuanto descubráis la combinación 00:10:11
de teclas para hacer esto 00:10:13
¿vale? entonces si vosotros 00:10:15
programáis tal y como programáis 00:10:17
luego se puede cambiar, es decir 00:10:19
que vosotros podéis configurar 00:10:21
en Eclipse como 00:10:23
se ponen las paréntesis, si se pone 00:10:25
aquí arriba, si se pone aquí abajo y cosas por el estilo 00:10:27
pero considerando que esto es el 00:10:29
por defecto, pues a lo mejor 00:10:31
es fácil llegar a un sitio nuevo, poner esto por defecto y estar acostumbrado 00:10:33
a programar así, es una opción, no he acabado 00:10:37
preguntas al final, entonces 00:10:41
vale, muy bien, pero esto hace lo mismo que esto 00:10:45
¿por qué no? no, bueno, interpretar 00:10:49
el programa por dentro no lo sabremos nunca, pero el concepto 00:11:02
es que cualquier output de este de aquí lo puedo obtener de aquí 00:11:06
lo estás haciendo, constantemente 00:11:10
estás haciendo si este d 00:11:16
es igual a este 00:11:18
1, entonces lo estás 00:11:20
haciendo por debajo, pero el concepto es 00:11:22
¿puedo aquí obtener un output 00:11:24
que no pueda obtener 00:11:27
aquí? 00:11:29
yo quiero una respuesta 00:11:35
si tú tienes respuesta a mi pregunta, me vale 00:11:36
esta es una respuesta 00:11:39
que no he preguntado yo 00:11:44
00:11:46
esta es la respuesta que quiero yo 00:11:47
Aquí tengo que si pongo 123 me dice número equivocado, sin embargo aquí no. 00:11:53
Entonces, ¿por qué no? Porque de todos los case no hay ningún case que entre en este número aquí, que se equivalga a este número aquí. 00:12:04
Pero es que no puede hacer case 8 que no, case 9 que no, case 10 que no. 00:12:14
Entonces, ¿existe una forma para decir 00:12:21
Oye, mira, en cualquier otro caso 00:12:24
Haz una cosa 00:12:27
00:12:28
Esto sí, ahora lo preguntaré la respuesta que me has dado tú 00:12:29
Que es el default 00:12:33
Que tú no sabes 00:12:35
El default es dos puntos 00:12:39
00:12:40
Pero no hace falta porque el case 00:12:46
Me proporciona 00:12:49
El comando por defecto 00:12:50
Es decir, en cualquier otro caso 00:12:53
Día valdrá 00:12:55
No es un día 00:12:57
Entonces ahora 00:12:59
Si lanzo esto y pongo 123 00:13:04
Me dirá que no es un día 00:13:07
¿Sí? 00:13:08
Teniendo en cuenta que esta cosa del break 00:13:14
Esta cosa del default 00:13:16
Se puede utilizar de forma creativa 00:13:17
Para hacer cosillas 00:13:20
Realmente interesantes 00:13:21
¿Vale? 00:13:24
Por ejemplo 00:13:25
¿Vale? 00:13:26
Vamos a ver ahora esto 00:13:27
Y luego os dejo a la pregunta 00:13:28
Switch case es otra sentencia condicional 00:13:30
¿Hace falta? 00:13:33
No, todo lo que se hace con el switch case se puede hacer con el if 00:13:34
Y probablemente mucho de lo que se puede hacer con el if se puede hacer con el switch case 00:13:39
Es un comodín, es que en situaciones como esta 00:13:43
Donde tú no estás, serían una serie de if que te dice 00:13:47
Que si es uno, haz esto, si es dos, haz esto 00:13:51
Si tú tienes una variable, la tienes que 00:13:54
Confrontar con valores concretos 00:13:55
Y números primitivos 00:14:01
Esto con string 00:14:03
No lo sé si funciona 00:14:05
Y si funciona correctamente 00:14:07
Pero con tipos primitivos 00:14:08
Sí, seguramente 00:14:12
Pues entonces el switch case 00:14:13
Es más cómodo de utilizar 00:14:15
¿Vale? 00:14:17
Es una cosa de este estilo 00:14:18
Comprueba, si vale uno 00:14:20
Se va a la sentencia 00:14:23
Que está en el caso uno 00:14:26
Si está el break 00:14:27
Se para y se acaba 00:14:29
Si no está el break, luego ejecuta todas las otras sentencias 00:14:30
Si esto era falso, va a comprobar si vale el valor 2 00:14:33
Si vale el valor 2, ejecuta esta sentencia 00:14:37
Y toda la sentencia siguiente hasta llegar a un break 00:14:41
Si tiene un break, va aquí 00:14:43
Si no, no 00:14:45
Este es más o menos la idea 00:14:46
El break es opcional 00:14:49
También está el default 00:14:50
Que es como al final de todas estas 00:14:54
Independientemente, pues haces la sentencia default 00:14:57
¿Vale? Si has hecho todo 00:15:00
Falso, pues tienes una opción 00:15:02
Extra, que es esta aquí, que no obstante 00:15:04
Sea falso, haz esta cosa aquí 00:15:06
Cuidado que si no ponéis break aquí 00:15:07
Se ejecutará la sentencia por default 00:15:10
También 00:15:12
¿Sí? Y entonces 00:15:12
¿Cuándo los break pueden 00:15:15
No servir? Por ejemplo, en casos como 00:15:18
Esto, pongamos una nota 00:15:19
Y que quiero transformar la nota en 00:15:21
Aprobado, bien, notable, sobreviviente, 00:15:23
Suspensos y cosas por el estilo, ¿vale? 00:15:25
Entonces si es un 5 es aprobado, si es un 00:15:27
6 es un bien, si es un 7 00:15:30
o un 8, lo veis, en los 00:15:31
dos casos, daría notable 00:15:33
¿sí? 00:15:35
porque aquí no hay un break 00:15:37
entonces, si entrar aquí, no haría nada 00:15:38
pasaría a ejecutar esta, diría 00:15:41
que es notable, y luego saltaría 00:15:43
¿sí? y si no 00:15:45
el 9 es sobresaliente, el 10 es 00:15:48
matriculador, en cualquier otro caso 00:15:49
es suspenso, break 00:15:51
este break aquí podría no servir 00:15:52
¿sí? 00:15:55
es para hacer un ejemplo 00:16:07
A lo mejor este switch está dentro de un if que ha comprobado que es entre 1 y 10. 00:16:08
Entonces no lo pone. 00:16:13
¿Sí? 00:16:16
¿Dudas? 00:16:17
Pruébalo. 00:16:22
En este momento no estoy seguro. 00:16:23
Puede ser porque siendo string algo mágico a lo mejor funciona. 00:16:26
Pero no me fiaría mucho. 00:16:32
No me fiaría mucho. 00:16:36
Lo probamos. 00:16:42
Pero lo probamos después de la grabación. 00:16:43
¿Duda? 00:16:44
creo que no, porque 00:16:45
break saltaría 00:16:49
igualmente aquí, entonces no hace falta 00:16:51
lo pones, no cambia nada 00:16:54
¿sí? 00:16:55
¿más preguntas? 00:16:58
entonces, muchos de los ejercicios 00:17:01
que habéis visto hasta ahora 00:17:04
del listado, lo podéis 00:17:05
volver a hacer con 00:17:07
este de aquí, pensad 00:17:09
si es un caso como esto de aquí 00:17:11
de los lunes, martes, miércoles, jueves 00:17:13
pues entonces, sí que 00:17:15
un switch podría funcionar bien, pues ese ejercicio concreto lo rehacéis con un switch. 00:17:17
Autor/es:
Stefano Chiesa
Subido por:
Stefano C.
Licencia:
Reconocimiento - No comercial
Visualizaciones:
30
Fecha:
8 de octubre de 2024 - 11:13
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
17′ 24″
Relación de aspecto:
16:10 El estándar usado por los portátiles de 15,4" y algunos otros, es ancho como el 16:9.
Resolución:
1152x720 píxeles
Tamaño:
52.83 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid