20261009 SWITCH-CASE - 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, vamos a recopilar las sentencias, la sintaxis de las sentencias de decisión que conocíamos.
00:00:00
Recordad que estábamos con la sentencia Java de decisión.
00:00:06
¿Cuándo aplica esa sentencia?
00:00:17
Pues esa sentencia aplica cuando mi programa puede que tiene dos caminos posibles.
00:00:20
Tiene dos caminos posibles.
00:00:27
O hace una cosa o hace la otra.
00:00:28
Dos caminos posibles.
00:00:30
O bien viene por aquí haciendo estas sentencias
00:00:31
O bien viene por aquí
00:00:35
Tiene dos caminos posibles
00:00:36
Entonces un programa no puede hacer dos cosas
00:00:38
O hace una o hace la otra
00:00:40
Bueno puede hacer dos y las hace en secuencia
00:00:43
Una detrás de otra
00:00:45
Pero no es esta la situación que estamos representando
00:00:45
Estamos representando
00:00:49
La situación de que mi programa
00:00:51
O bien hace esto o bien hace esto
00:00:52
Otro
00:00:55
En función de una condición
00:00:55
Que pueda ser cierta o no
00:00:58
Pues esta era la sentencia de decisión
00:00:59
En función de una condición
00:01:06
Hace una cosa o hace otra
00:01:08
Vale
00:01:09
Esa sintaxis ya la conocemos
00:01:11
Pero la sintaxis no es la dificultad
00:01:14
La dificultad es entender
00:01:16
En qué contexto
00:01:18
Tengo yo que aplicar esa sentencia
00:01:19
En qué contexto tengo que aplicarla
00:01:21
Entendiendo bien un enunciado
00:01:23
Pues aquí tengo que aplicar esta sentencia
00:01:25
Porque estoy en un contexto en el cual
00:01:27
O hago una cosa o hago otra
00:01:29
Esa es la parte difícil, no la de escribir el código.
00:01:31
Bueno, ¿qué otra parte difícil había?
00:01:36
Pues expresar la condición correctamente.
00:01:39
Expresar la condición correctamente.
00:01:43
¿Vale? Porque a mí me dirán las condiciones.
00:01:45
El que me está pidiendo un software, me lo dirá en su lenguaje natural
00:01:48
y yo lo tengo que traducir a expresiones de Java.
00:01:51
Ayer ya pusimos algunos ejemplos más grandes.
00:01:55
pues puede pasar a una atracción
00:01:57
que cumpla esto, pero siempre y cuando no tenga
00:01:59
no sé cuántos
00:02:01
o va a tener descuentos si el producto no está
00:02:02
en liquidación, pero siempre y cuando
00:02:05
seas cliente para ti, eso que te dicen
00:02:07
en palabras, hay que traducirlo
00:02:09
a Java, sobre eso
00:02:11
ya hicimos ejemplos ayer
00:02:13
y es la otra dificultad que hay
00:02:15
identificar bien la condición
00:02:17
bueno, lo siguiente
00:02:19
que incorporamos es
00:02:21
vale, ¿qué pasa si mi programa
00:02:23
tiene no solo dos caminos posibles
00:02:25
sino varios caminos posibles
00:02:27
pues si tiene varios caminos posibles
00:02:29
sí
00:02:32
esta sentencia if
00:02:33
nos vale igualmente
00:02:35
porque hacíamos lo siguiente
00:02:37
si tengo varios caminos posibles
00:02:39
pues yo voy incorporando condiciones
00:02:41
si esta condición es cierta
00:02:45
hago esto
00:02:48
que no lo es
00:02:48
siguiente condición
00:02:50
es cierto, hago esto
00:02:52
que no lo es
00:02:54
hago esto otro
00:02:57
¿vale?
00:03:01
entonces esta sentencia de aquí
00:03:04
este diagrama de flujo
00:03:07
tiene tres caminos posibles
00:03:08
camino 1, camino 2 y camino 3
00:03:10
el camino 1 si se cumple esta condición
00:03:12
el camino 2 si se cumple esta
00:03:15
y el 3 si no se cumple
00:03:17
ni esta ni esta
00:03:19
entonces esto es un if anidado
00:03:20
dentro del else de un if
00:03:23
que esto es lo que dijimos que escrito
00:03:24
queda muy feo, no es que esté mal, está bien como código, pero escrito queda feo,
00:03:26
pues entonces hacíamos esta sentencia de aquí, que Java nos lo permite, if, else if, etc.
00:03:33
Y así voy aquí. Se me ha olvidado la condición, claro. C2, el C3, el C, ya lo que sea.
00:03:47
Aquí ya tenemos un montón de caminos. Este camino, este camino, este camino, cada uno asociado a una condición.
00:04:14
bueno, lo que he contado
00:04:20
17 veces
00:04:22
vale, pues entonces, aplicando esto
00:04:24
hacer este ejercicio
00:04:27
que os he dicho aquí, sería muy fácil
00:04:29
vale
00:04:30
vale, pues este ejercicio que he dicho aquí
00:04:31
sería muy fácil
00:04:45
vale, vamos a arrancarlo
00:04:46
el 13
00:04:49
vale
00:04:51
pues venga
00:05:14
programa
00:05:17
que recibe un número entero
00:05:18
vale, muy bien, recibe un número entero
00:05:21
y te dice que día corresponde
00:05:24
si es uno, lunes, si es dos, martes
00:05:26
vale, entendido esto
00:05:28
aquí automáticamente ya vemos
00:05:30
que es un programa que puede tomar
00:05:32
hasta siete caminos distintos
00:05:34
después de haber leído lo que hace
00:05:36
ya tenemos que ver una especie
00:05:39
ya de diseño de diagrama en la cabeza
00:05:40
que ya nos va orientando
00:05:42
hacia dónde tirar
00:05:44
si hemos entendido esto ya decimos
00:05:45
Ah, vale, mi programa tiene siete posibles caminos. O mostrar es lunes, mostrar es martes, mostrar es miércoles, jueves, viernes, sábado y domingo. Tiene hasta siete posibilidades. ¿En función de qué? Pues de la condición correspondiente. Si el número es uno, dos y tres.
00:05:47
entonces un programa que tiene hasta 7 caminos distintos
00:06:03
en función de condiciones que yo puedo escribir
00:06:06
lógicamente, pues es un if-else-if
00:06:09
y ya está, entonces con lo que sabemos hasta ahora
00:06:12
pues este programa ya lo tendríamos esbozado
00:06:15
en la cabeza y sería sencillo
00:06:18
primero como siempre
00:06:20
leer el numerajo
00:06:22
leer los datos
00:06:25
copio de otro que ya lo tengo
00:06:28
introduzca número de día en este caso introduzca el número de día y ahora de
00:06:33
efectivamente este programa puede hacer hasta siete cosas posibles o mostrar
00:06:44
esto o mostrar esto o mostrar esto o mostrar esto o mostrar esto o esto
00:06:50
o esto, vale, siete caminos excluyentes
00:07:25
o hace uno, o hace el otro, o hace el otro, desde luego no en secuencia
00:07:36
son siete caminos excluyentes, luego esto es un if, el save, vale, cada
00:07:39
camino arrancará en función
00:07:43
de una condición, entonces yo tengo que asociar
00:07:47
qué condición marca que yo arranque por cada uno
00:07:51
de los caminos, es fácil de escribir esa condición, en este
00:07:56
caso sí, depende de este dato de entrada. Si el dato de entrada es igual a 1, pues ya está, será
00:08:00
esta. Ahora, siguiente rama, la siguiente rama será otro, el save, ¿vale? Asociada a la condición
00:08:11
correspondiente, pues que en un día sea igual a 2, ¿vale? Ya tengo las dos ramas, cada una asociada
00:08:23
una condición. Siguiente rama, asociada a la condición de que en un día sea igual
00:08:33
a tres. Siguiente rama, asociada a la condición, voy a ir copiando y pegando que será más
00:08:45
fácil, asociada a la condición de que sea cuatro. Siguiente, asociada a la condición
00:08:59
de que sea 5, siguiente
00:09:12
asociada a la condición de que sea 6
00:09:19
y aquí yo podría poner también
00:09:22
y siguiente asociada a la condición de que sea 7
00:09:28
vale, y esto está bien, y mi if else if se ha quedado sin else
00:09:31
no pasa nada, el else siempre es opcional
00:09:36
el else siempre es opcional, vale
00:09:38
eso significa que si se da esta condición hago esto
00:09:42
Y se acabó
00:09:46
Si no se da, miro la siguiente
00:09:47
Se da esta, hago esto
00:09:49
Y se acabó
00:09:51
Y así una tras otra
00:09:51
Cuando ya he llegado al final
00:09:53
Esta se da, sí, hago esto
00:09:54
Que no, se acabó
00:09:57
Y al no haber un else
00:09:58
En el caso de que sean falsas todas
00:10:00
Esta, esta, esta, todas falsas
00:10:03
No hace nada, porque no hay un else
00:10:05
El else ya sabéis que significa
00:10:07
¿Qué hago si todas las anteriores son falsas?
00:10:08
¿Qué hago si todas son falsas?
00:10:13
Aquí si no hay ningún else
00:10:14
Si todas son falsas
00:10:15
Porque ha introducido el número de día mal
00:10:17
No hace nada
00:10:19
Entonces bueno, ya que estamos
00:10:19
Pues podríamos poner
00:10:22
En cualquier otro caso
00:10:23
Poner el número de día introducido
00:10:25
Pues no es válido
00:10:26
En el caso
00:10:29
Este de aquí
00:10:31
Pues número de día
00:10:34
No válido
00:10:38
¿Vale?
00:10:39
¿Vale?
00:10:46
Así hemos hecho nuestro programa
00:10:47
Y esto, pues, como nos podemos imaginar, funciona. Es un programa facilito en el que no hemos tenido que pensar mucho. Y, lógicamente, si lo probamos, nos funcionará. Si yo pongo el día menos 9, pues, número de día no ha valido. Vale, nos funciona.
00:10:49
Bueno, hasta aquí vale, ¿no?
00:11:13
Vale, pues hay una tercera y, digamos, última sintaxis alternativa para la sentencia de decisión
00:11:18
que se aplica en el caso de que las condiciones sean exactamente que una variable sea igual a un valor.
00:11:28
Solo en ese caso, como es este ejemplo.
00:11:37
en general las condiciones que yo pongo aquí
00:11:39
lógicamente pueden ser las condiciones
00:11:42
todo lo grandes que yo quiera
00:11:44
y todo lo complejas que yo necesite
00:11:46
estas condiciones de aquí pueden ser complejísimas
00:11:47
como algunas de las condiciones que vimos ayer
00:11:51
la que sea
00:11:52
la que esté asociada a ese camino
00:11:54
la que sea
00:11:57
¿vale?
00:11:57
pero en el caso concreto
00:11:59
en el caso concreto
00:12:02
de que las condiciones
00:12:03
sean todas así
00:12:05
es decir, que el camino que se opta
00:12:08
dependa del valor de una variable
00:12:12
pues podemos poner una sintaxis alternativa
00:12:15
¿vale?
00:12:18
es una situación relativamente habitual
00:12:20
tú tienes un dato
00:12:22
y en función del valor de ese dato
00:12:23
haces unas cosas u otras
00:12:26
justo lo que tenemos aquí
00:12:28
tenemos un dato que es de un día
00:12:30
y en función del valor de ese dato
00:12:32
hacemos unas cosas u otras
00:12:34
¿vale? es una situación
00:12:35
relativamente habitual
00:12:37
que tiene una sintaxis propia
00:12:39
aunque podríamos hacerlo así
00:12:42
tiene su sintaxis propia
00:12:44
y es la sintaxis switch case
00:12:46
¿vale?
00:12:50
entonces repito
00:12:54
la sintaxis de decisión switch case
00:12:55
aplica solo
00:12:58
en el caso concreto
00:12:59
en que las diferentes condiciones
00:13:01
de las diferentes ramas
00:13:04
sean todas ellas
00:13:05
una misma variable
00:13:07
igual a un valor, de ahí viene lo de switch
00:13:08
que es, conmuta a una rama o conmuta a otra
00:13:12
en función del valor de una única variable
00:13:16
en función del valor de una única variable, conmutas una rama, conmutas a otra
00:13:18
bueno, pues con esa sintaxis, ¿cómo sería este mismo código?
00:13:23
pues la sintaxis es la siguiente, vale, la sintaxis de esta sentencia
00:13:30
es, se pone primero switch
00:13:47
y ahora entre paréntesis
00:13:50
la variable
00:13:53
cuyo valor vamos a mirar
00:13:55
para decidir por qué camino nos vamos
00:13:57
porque recordad
00:13:59
que esto de switch case se aplicaba
00:14:01
solo al caso
00:14:03
en los cuales las condiciones para los
00:14:05
diferentes caminos fueran
00:14:07
posibles valores de una única variable
00:14:09
pues aquí ponemos
00:14:12
esa única variable, vale
00:14:13
pues este switch sería
00:14:15
en función de la variable numDía
00:14:16
ahora ya en función de la variable en un día vamos distinguiendo los casos 1 a 1
00:14:19
caso de que mi variable
00:14:25
tome el valor, pongo case y luego el primer valor
00:14:30
posible que yo quiero contemplar, el primero que quiero contemplar
00:14:34
en este caso el 1, queremos contemplarlo, en el caso de que
00:14:37
sea 1, aquí pongo 2 puntos
00:14:42
y aquí la sentencia o la lista de sentencias
00:14:46
que se va a hacer en ese caso, aquí sin llaves
00:14:50
en este caso sería esto exclusivamente, sería esto de aquí
00:14:55
punto pelota, y acabo con un break
00:15:02
ahora indicamos por qué
00:15:07
y así voy definiendo cada uno de los casos
00:15:11
¿qué es? caso de que mi variable
00:15:17
numDía tome el valor 2, ese caso
00:15:20
Pues aquí lo que yo quiero hacer
00:15:24
Que en este caso
00:15:27
Quiero mostrar martes
00:15:29
Y termino
00:15:31
Con esto
00:15:33
Obligatorio
00:15:35
Ahora explicamos por qué
00:15:36
Y así iría poniendo cada caso
00:15:38
Cada una de las posibilidades
00:15:42
Que yo quiero contemplar
00:15:44
Para esa variable
00:15:46
No sé si he puesto ya suficientes
00:15:49
Caso 1, caso 2
00:15:53
caso 3, miércoles, caso 4, jueves, caso 5, viernes, caso 6, sábado, caso 7, domingo, vale,
00:15:55
Y el else donde se contempla, porque yo aquí tengo en mi else if, tengo un else si no se da ninguna de las anteriores.
00:16:35
En el switch case también puedo contemplar la rama en la que no se da ninguna de las anteriores.
00:16:47
Si la puedo contemplar poniendo default.
00:16:52
default significa
00:16:59
si la variable no toma
00:17:02
ninguno de los valores anteriores
00:17:05
si no toma ninguno
00:17:07
pues lo que yo quiero hacer aquí
00:17:09
número
00:17:15
de día
00:17:18
vale pues esta
00:17:20
sintaxis aquí
00:17:28
se ve más clara que la otra
00:17:30
haciendo lo mismo
00:17:32
queda más bonita
00:17:34
y se ve más claro
00:17:39
porque en cuanto tú ves esto
00:17:42
dices, ah vale, que se me abren
00:17:45
diferentes posibilidades
00:17:47
en función del valor de una variable
00:17:49
ya lo ves de partida
00:17:51
dices, este programa va de esto
00:17:52
de hacer diferentes cosas en función
00:17:54
del valor de una variable, va de esto
00:17:57
sin embargo, si tú esto mismo
00:17:58
lo ves en un if else if
00:18:01
la primera condición sabes que depende
00:18:02
del valor de la variable
00:18:05
pero para ver el tipo de condiciones
00:18:06
siguientes, a ver si dependen de esa
00:18:09
variable o dependen de otras cosas distintas, tienes que ir una por una
00:18:11
para ver esas condiciones cuáles son. Entonces
00:18:14
esto mismo hecho con el switch case queda más bonito
00:18:19
porque tú lo ves y dices, ah, vale, en función de esta variable pueden pasar
00:18:22
cosas distintas. Ya sabes que todo lo que viene después tiene que ver
00:18:27
exclusivamente con el valor de esta variable.
00:18:31
Y cada posible valor va
00:18:35
Acompañando a un case de estos
00:18:40
Este default se me ha ido
00:18:42
Vale
00:18:48
Entonces
00:18:52
Recordad lo que os digo siempre
00:18:54
Del estilo a la hora de escribir el código
00:18:58
Las tabulaciones correctas
00:19:00
Cuando yo entro dentro de un if o de un else
00:19:04
Las tabulaciones correctas
00:19:07
Dentro del main
00:19:09
Entonces no es que sea obligatorio
00:19:09
El código podría estar escrito todo seguido horrible
00:19:11
Que no se entendiera nada
00:19:13
Pero sería lo mismo
00:19:14
los saltos de línea y los espacios para el compilador no son nada
00:19:16
pero para el desarrollador sí, porque permite
00:19:20
de ver un código y entender de qué va a no entender nada
00:19:24
entonces seguramente ya habréis averiguado
00:19:27
que la combinación
00:19:32
control shift F
00:19:36
en el eclipse, en otros entornos de desarrollo
00:19:38
o sea, otra, en el eclipse, el control sheet F
00:19:43
te cambia el formato para dejarlo bonito, no te cambia
00:19:47
nada relacionado con el código, te cambia el formato para dejarlo bonito, ¿vale?
00:19:52
entonces yo aquí lo he descolocado, hago control sheet F y me lo deja bonito
00:19:55
¿vale? entonces
00:20:00
usadlo para dejarlo bonito, pero
00:20:03
una vez que tenéis el conocimiento de cuáles son las reglas de estilo
00:20:08
vale, una llave siempre se abre en la misma línea en la que empieza
00:20:12
su método
00:20:17
en este caso el if, aquí es que no he puesto llave, pero si hubiera puesto llave
00:20:21
que en este caso era opcional, pero vamos, si lo hubiera puesto, pues la llave se abre
00:20:24
en la misma línea donde está la sentencia que la provoca
00:20:31
se cierra en una línea nueva suya
00:20:36
para ella a la misma altura de donde arrancó
00:20:40
lo que esté dentro tabulado, etc
00:20:44
vale
00:20:46
entonces aquí el control shift F
00:20:48
pues el switch case lo deja así
00:20:51
todo a la vez
00:20:53
que a mi me resulta muy feo, yo lo veo más claro cuando está así
00:20:53
pero bueno
00:20:57
vamos a dejarlo como lo deja el
00:20:58
y ya está
00:21:00
vale, yo esto todo
00:21:02
lo tabularía porque lo veo más claro
00:21:04
así tabulado
00:21:07
lo dejaría así, switch y el case
00:21:07
dentro
00:21:11
pero bueno, si hacemos control shift F
00:21:11
pues él me pone a la misma altura
00:21:15
¿vale? switch case
00:21:17
todo juntito ahí
00:21:19
no pasa nada, es un convenio
00:21:20
también seguido
00:21:22
¿vale?
00:21:24
bueno, pues entonces
00:21:27
he entendido que esta sintaxis
00:21:28
es sólo cuando
00:21:31
las condiciones de las diferentes ramas
00:21:33
se corresponden
00:21:35
a posibles valores de una variable
00:21:37
sólo en ese caso, ¿vale?
00:21:39
Ahora ya, matices y detalles a conocer de la sentencia, vale, aquí se puede poner cualquier tipo de variable primitiva y string también, se usa para esos, primitivas y string,
00:21:41
Entonces si yo pusiera aquí un string
00:21:57
Como los posibles valores de string
00:21:59
Son cadenas, aquí tendría que poner una cadena de texto
00:22:02
Lógicamente
00:22:04
Si la variable que yo he puesto aquí
00:22:05
Es un string
00:22:08
Pues sus posibles valores tendrían que ser
00:22:09
Lógicamente compatibles con string
00:22:12
¿Vale?
00:22:14
Ahí yo tengo que poner un valor
00:22:15
Que es la posibilidad que yo contemplo
00:22:17
Para esa variable, del tipo que sea
00:22:20
Si es string, pues string, es que no hay otra
00:22:21
Eso por un lado
00:22:23
¿Vale? Vale
00:22:25
Por otro lado, se pueden poner varias posibilidades en la misma línea, ¿vale? Todas estas pequeñas variaciones se han ido incorporando en sucesivas versiones de Java, entonces a lo mejor uno ve un programa de hace tres o cuatro años que la mayoría de los códigos de las empresas, lógicamente, son código legado, que se llama, que son aplicaciones que están hechas hace mucho tiempo,
00:22:27
y yo no puedo de repente cambiarlas de arriba a abajo
00:22:56
solo porque Java incorpore
00:23:00
pequeñas modificaciones sintácticas
00:23:02
a modo de marketing
00:23:05
entonces, la mayoría de los desarrollos
00:23:07
tienen código compatible
00:23:12
con versiones antiguas
00:23:15
porque tú no puedes migrar de golpe
00:23:17
seguramente si tú haces una migración
00:23:19
así por las buenas
00:23:22
las aplicaciones que tienes ahí en los servidores
00:23:24
dando servicio, hasta que vuelvan
00:23:26
a estar operativas, a lo mejor pasa más tiempo
00:23:28
del que conviene, para tus intereses
00:23:30
entonces
00:23:32
las aplicaciones que vais a ver
00:23:34
por ahí, la gran mayoría tienen código
00:23:36
compatible con versiones antiguas
00:23:38
porque es que si no, no podemos estar
00:23:40
actualizando todo el rato
00:23:42
entonces el código compatible con versiones
00:23:43
antiguas
00:23:47
es el código que se llama legado
00:23:47
código legado
00:23:50
que
00:23:51
en los términos
00:23:52
informáticos que deberíais
00:23:56
ir incorporando
00:23:58
términos profesionales
00:23:59
de los que cuando uno habla
00:24:02
pues no le hace aparentar que sabe
00:24:04
porque no solo hay que saber
00:24:06
eso es fundamental
00:24:08
también tenéis que aparentarlo
00:24:09
para eso vuestro discurso
00:24:12
tiene que ser ya
00:24:15
manejando los términos
00:24:16
de desarrollo
00:24:19
todo eso
00:24:20
bueno pues este código
00:24:21
es código compatible
00:24:24
con versiones antiguas
00:24:27
que está en todos los desarrollos de todas las empresas
00:24:28
mucho más antiguos
00:24:31
de los que os podéis imaginar
00:24:32
hoy en el Recreo precisamente ha venido una alumna
00:24:33
a coger el título
00:24:36
que acabó hace dos años
00:24:37
y ha subido a vernos
00:24:40
y todo lo que me ha contado
00:24:42
de lo que siguen haciendo en Java
00:24:44
dice que seguimos estando
00:24:46
en la versión 1.8
00:24:48
¿vale?
00:24:50
porque no es tan fácil para las empresas
00:24:52
a seguir cambiando de...
00:24:54
Bueno, pues ¿por qué os cuento esto?
00:24:56
Porque algunas de las cosas que yo os estoy
00:24:58
diciendo aquí del switch case
00:25:00
solo las admiten
00:25:01
las versiones modernas de Java.
00:25:04
Claro, a lo mejor os vais
00:25:06
a un sitio y escribís, por ejemplo,
00:25:07
esto de poner
00:25:10
varias posibilidades separadas por comas
00:25:11
y el compilador se empeña en deciros
00:25:13
esto está mal, esto está mal, esto está mal.
00:25:15
No es que esté mal, es que el compilador
00:25:17
que tienen ahí es un poco más antiguo.
00:25:19
¿Vale?
00:25:22
entonces que sepáis que en Java
00:25:22
que está sacando versiones nuevas continuamente
00:25:25
y que esas versiones lo que hacen es
00:25:27
incorporar chorraditas
00:25:29
vale, pues a lo mejor usáis alguna
00:25:30
de esas chorraditas y dices está mal, está mal, está mal
00:25:33
no, es que esa chorradita
00:25:35
está a partir de esta versión
00:25:36
no está en la versión que tiene este servidor
00:25:38
vale
00:25:41
hay versiones
00:25:43
de Java que sí que hicieron
00:25:45
cambios esenciales
00:25:47
y siempre
00:25:49
es esta por en sí, por ejemplo
00:25:51
la 1.8 de hace un montón
00:25:52
esa hizo el cambio esencial
00:25:55
con toda la programación funcional
00:25:57
etcétera, que no vamos a tocar
00:25:59
este año porque es imposible
00:26:01
pues no hay
00:26:02
ninguna empresa que use
00:26:05
de 1.8 hacia atrás, eso no
00:26:07
porque 1.8 fue el cambio esencial
00:26:08
pero de 1.8 en adelante
00:26:10
lo más probable es que haya
00:26:12
muchos contextos de desarrollo
00:26:14
que ni lo utilicen, con lo cual esto
00:26:16
ni siquiera sería válido en esos contextos
00:26:19
esto ni siquiera sería válido
00:26:21
vale, bueno, pero nosotros
00:26:22
que estamos modernizados, pues si lo
00:26:25
podemos usar sin ningún problema
00:26:27
venga, más cosas
00:26:28
aparte de poder poner
00:26:30
varios en coma
00:26:33
muy bien, vale
00:26:34
perdón
00:26:39
que si puedo bajar
00:26:40
vale, a ver, más cosas
00:26:50
hemos dicho que estos valores
00:26:52
en general son o primitivos
00:26:54
o string, y lo que hay que poner aquí
00:26:56
es uno de los posibles valores
00:26:58
de la variable que esté aquí, si es string
00:27:00
pues cadena, lo que sea
00:27:02
que se pueden poner varios separados por comas
00:27:03
y ahora la pregunta es
00:27:06
¿por qué hay que poner el break
00:27:08
todo el rato?
00:27:10
bueno, porque por esta sentencia
00:27:13
por razones antiguas
00:27:15
de cuando se hizo en su momento
00:27:17
esta sentencia
00:27:18
funciona de la siguiente manera
00:27:20
primero coge la variable
00:27:21
y empieza desde el principio
00:27:24
esta variable tiene este valor
00:27:27
lo tiene, hace lo que hay dentro
00:27:29
y a partir
00:27:31
de ahí sigue
00:27:33
con el resto de los casos ya sin mirar
00:27:34
nada, sigue
00:27:37
hasta que se encuentre un break
00:27:38
entonces, si nosotros
00:27:40
no ponemos un break dentro de cada
00:27:43
case
00:27:45
y un día es igual a uno y este break no está
00:27:46
haría esto y seguiría
00:27:49
ya sin mirar los case, seguiría
00:27:51
hasta el siguiente break
00:27:53
y normalmente no ese es el efecto que queremos
00:27:54
normalmente el efecto que queremos es
00:27:57
si la variable tiene este valor, haz esto
00:27:59
y se acabó, no hagas nada más
00:28:01
pues entonces hay que poner el break detrás
00:28:03
pero si tiene este valor, haz esto
00:28:04
y se acabó, no hagas nada más
00:28:06
con lo cual tienes que poner el break detrás
00:28:08
porque si no pones el break
00:28:10
desde el momento en que entra en un case
00:28:11
él ya sigue hasta el siguiente break
00:28:13
si no hay siguiente break
00:28:16
sigue hasta el final haciéndolo todo
00:28:17
aunque no sean los case correctos
00:28:19
Entonces, la sentencia del switch case se diseñó así, precisamente, antiguamente, porque como no estaba la opción de poner varios casos con comas, como no estaba la opción esta que acabo de decir, de poner varias posibilidades con comas,
00:28:22
Si tú querías hacer varias
00:28:44
Para varios números
00:28:47
¿Vale?
00:28:50
Pues entonces tenías que quitar el break
00:28:51
Para que una vez que era un número te lo hiciera todo
00:28:52
Entonces tenías que jugar con ese break
00:28:54
Pero ahora ya eso ya no tiene sentido
00:28:56
Entonces
00:28:59
Ahora ya nosotros no vamos a jugar
00:29:02
Quitando y poniendo el break
00:29:05
Para hacer varias ramas a la vez
00:29:06
Si solo tengo un case cierto
00:29:08
Ya con eso no vamos a jugar nunca
00:29:10
entonces, lo ponemos porque hay que ponerlo
00:29:12
porque si no funciona, como hemos dicho
00:29:15
si no hay un break, desde el momento en que entran
00:29:17
un case, ya sigue
00:29:19
entonces lo ponemos porque hay que ponerlo
00:29:20
como hábito
00:29:23
y si queremos contemplar
00:29:24
varias posibilidades en el mismo
00:29:28
case, pues ya sabemos
00:29:29
separadas por comas y se acabó
00:29:30
bueno, y ya por último
00:29:33
último matiz del switch case
00:29:39
como ya el break
00:29:40
empezó a convertirse en una cosa molesta
00:29:43
que es jolines
00:29:45
que rollo tener que poner el break
00:29:47
cada vez
00:29:50
como ya empezó a convertirse en una cosa molesta
00:29:51
se admite
00:29:53
una sintaxis sin break
00:29:55
y no por ello
00:29:57
avanzando en todas las ramas
00:29:59
que de nuevo es una sintaxis relativamente nueva
00:30:01
entonces
00:30:04
habrá
00:30:05
sistemas que no la reconocen
00:30:06
y cuál es esa sintaxis
00:30:10
relativamente nueva
00:30:12
Que te permite olvidarte del break
00:30:13
Pues sería
00:30:16
Tú pones el case
00:30:17
Y en lugar de los dos puntos
00:30:19
Pones este simbolito de aquí
00:30:20
Guión mayor que
00:30:22
Y ahora entre llaves
00:30:25
Lo que hay que hacer en ese caso
00:30:26
Y ahí ni break ni nada
00:30:28
Esa es más bonita
00:30:30
Más elegante
00:30:32
Pero relativamente reciente
00:30:34
Con lo cual habrá versiones
00:30:36
De Java que el compilador
00:30:39
No las conozca
00:30:41
Entonces, esto mismo
00:30:42
Escrito con esa nueva versión
00:30:48
Que yo ya voy a ponerlo así siempre
00:30:50
Porque es la que más me gusta
00:30:53
Sería esto
00:30:54
En el caso 1
00:31:01
Quito la llave
00:31:03
Pongo esto
00:31:05
Y aquí abro mi llavecita
00:31:08
Y el break aquí me sobra
00:31:10
¿Vale? El break aquí me sobra
00:31:11
En el caso 2
00:31:14
Abro
00:31:18
Así
00:31:21
En el caso 3
00:31:25
A ver, voy a ir copiando y pegando
00:31:28
Para no perder tanto tiempo
00:31:31
En el caso 3
00:31:33
Lo mismo
00:31:36
En el caso 4
00:31:38
Ahora lo arreglamos
00:31:40
Lo mismo
00:31:41
En el caso 5
00:31:43
Mismo
00:31:45
Caso 6
00:31:48
caso 7
00:31:50
y caso default
00:31:54
vale, entonces caso 1, caso 2, caso 3
00:31:57
entonces aquí tengo que imprimir lunes, martes
00:32:02
miércoles
00:32:04
miércoles, jueves
00:32:07
viernes, sábado
00:32:17
Caso 7, domingo
00:32:25
Y aquí
00:32:28
Día no
00:32:32
Válido
00:32:35
Ala
00:32:36
¿Vale?
00:32:39
Pues esta sintaxis es la más bonita
00:32:43
Aquí no hay break
00:32:45
En el caso de que la variable tenga 1
00:32:46
¿Qué vamos a hacer?
00:32:49
¿Qué ha pasado?
00:32:50
Ah, jolines
00:32:51
Esta es la sintaxis más bonita
00:32:52
En el caso de que la variable tenga 1
00:32:54
¿Qué vamos a hacer?
00:32:57
Lo que hay en estas llaves
00:32:58
Y aquí me olvido del break y ya está
00:33:00
Y ya no se mira nada más, se acabó
00:33:02
En el caso de que tenga dos
00:33:04
¿Qué voy a hacer?
00:33:06
Uh, aquí es que el break
00:33:07
Con el copia y ahí
00:33:08
En el caso de que tenga dos
00:33:10
El shift F no quita todas las cosas
00:33:12
Así que tampoco tengáis
00:33:18
Vaya por Dios
00:33:19
Vale
00:33:21
Vale, pues nada, esta sería más bonita
00:33:27
Cuando encuentra
00:33:33
Un case que se cumple
00:33:35
hace lo que hay entre las llaves que puede ser una sentencia humil y ya no
00:33:36
hace nada más y ya está entonces bueno no hace falta que perdamos el tiempo
00:33:39
probándolo porque esto va a funcionar cualquiera de las tres versiones está la
00:33:46
vais a ver mucho por ahí porque es la ha sido la estándar de toda la vida mundial
00:33:51
pero esta es la más actualizada
00:33:58
bueno vamos a parar aquí un momentito
00:34:03
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 1
- Fecha:
- 9 de octubre de 2026 - 14:08
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 34′ 07″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 311.77 MBytes