Condicional 2: switch - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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
6
00:01:46
Mi mamá que son solo 7
00:01:49
Es sábado
00:01:51
7
00:01:52
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
If
00:03:29
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
Sí
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
sí
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
Sí
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
Sí
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