1 00:00:00,000 --> 00:00:02,259 venga, vamos a ver 2 00:00:02,259 --> 00:00:04,860 a ver 3 00:00:04,860 --> 00:00:06,580 a mi ver este 4 00:00:06,580 --> 00:00:08,460 sistema es sincero, me da alergia 5 00:00:08,460 --> 00:00:10,119 porque es una forma muy fea de salir de un programa 6 00:00:10,119 --> 00:00:11,380 pero por ahora lo voy a dejar 7 00:00:11,380 --> 00:00:14,759 vale, para poderlo poner todo así 8 00:00:14,759 --> 00:00:16,539 sin necesidad de tabularlo 9 00:00:16,539 --> 00:00:16,980 en un else 10 00:00:16,980 --> 00:00:20,440 vale, pues nuestro programa tiene 11 00:00:20,440 --> 00:00:22,140 tres posibilidades, uy que digo yo, tres 12 00:00:22,140 --> 00:00:24,120 tiene siete posibilidades 13 00:00:24,120 --> 00:00:26,500 es lunes, es martes, es miércoles, es jueves 14 00:00:26,500 --> 00:00:28,140 es viernes o es domingo 15 00:00:28,140 --> 00:00:29,960 ¿verdad? ¿y de qué depende? 16 00:00:31,579 --> 00:00:33,979 es verdad, el sábado no se me había olvidado 17 00:00:33,979 --> 00:00:37,500 y el sábado, se me olvida el sábado 18 00:00:37,500 --> 00:00:39,340 ¿por qué será? bueno 19 00:00:39,340 --> 00:00:43,000 ¿y de qué depende? de una condición del numerito 20 00:00:43,000 --> 00:00:45,000 pues ya está, uno ya lo 21 00:00:45,000 --> 00:00:48,920 es que ya lo tiene todo cascado aquí, no tiene que volverse 22 00:00:48,920 --> 00:00:52,000 loco, planta esto y se acabó 23 00:00:52,000 --> 00:00:56,340 perdonen ustedes 24 00:00:56,340 --> 00:00:57,640 Ahora 25 00:00:57,640 --> 00:01:02,500 Perdón 26 00:01:02,500 --> 00:01:04,060 Ah 27 00:01:04,060 --> 00:01:06,040 Sí, está grabando 28 00:01:06,040 --> 00:01:07,799 Vale 29 00:01:07,799 --> 00:01:10,659 N no 30 00:01:10,659 --> 00:01:12,379 Si N es igual a 1 31 00:01:12,379 --> 00:01:14,739 Pues entonces lunes 32 00:01:14,739 --> 00:01:21,760 A ver 33 00:01:21,760 --> 00:01:30,219 Vale, entonces 34 00:01:30,219 --> 00:01:34,819 El 6 35 00:01:34,819 --> 00:01:36,379 N es igual a 2 36 00:01:36,379 --> 00:01:38,319 Martes 37 00:01:38,319 --> 00:01:42,409 Elseif 38 00:01:42,409 --> 00:01:43,590 ¿Lo podría dejar? 39 00:01:44,150 --> 00:01:46,829 Podría dejar, de hecho, sin los elses 40 00:01:46,829 --> 00:01:47,950 Y poner 41 00:01:47,950 --> 00:01:51,930 Número igual a uno esto 42 00:01:51,930 --> 00:01:54,109 A ver, espera, vamos a 43 00:01:54,109 --> 00:01:55,290 Voy a dejarlo así 44 00:01:55,290 --> 00:01:58,909 Pero bien puesto, claro 45 00:01:58,909 --> 00:02:02,629 Número igual a tres 46 00:02:02,629 --> 00:02:04,530 Espera, miércoles 47 00:02:04,530 --> 00:02:10,719 Número igual a cuatro 48 00:02:10,719 --> 00:02:11,800 Jueves 49 00:02:11,800 --> 00:02:16,780 Número igual a cinco 50 00:02:16,780 --> 00:02:18,699 Viernes 51 00:02:18,699 --> 00:02:23,360 numes igual a 6 52 00:02:23,360 --> 00:02:24,379 y me ha faltado uno 53 00:02:24,379 --> 00:02:25,699 sábado 54 00:02:25,699 --> 00:02:36,189 y numes igual a 7 55 00:02:36,189 --> 00:02:39,370 domingo 56 00:02:39,370 --> 00:02:44,020 vale, yo podría dejar mi programa así 57 00:02:44,020 --> 00:02:46,000 y está bien hecho 58 00:02:46,000 --> 00:02:48,360 lo que pasa es que 59 00:02:48,360 --> 00:02:50,360 tiene un montón de sentencias if distintas 60 00:02:50,360 --> 00:02:50,659 ¿verdad? 61 00:02:51,120 --> 00:02:53,840 esta primera, esta segunda 62 00:02:53,840 --> 00:02:55,879 vale, aunque esto está bien hecho y funciona 63 00:02:55,879 --> 00:02:58,060 ¿cuál es la única 64 00:02:58,060 --> 00:02:59,099 cosa fea que tiene? 65 00:02:59,099 --> 00:03:01,800 es que a la máquina virtual 66 00:03:01,800 --> 00:03:03,419 la estoy obligando a hacer 67 00:03:03,419 --> 00:03:05,319 evaluaciones de condiciones 68 00:03:05,319 --> 00:03:07,080 innecesariamente, ¿verdad? 69 00:03:07,599 --> 00:03:09,699 Si dejamos el código así, la máquina virtual 70 00:03:09,699 --> 00:03:11,860 evalúa esta, que se cumple 71 00:03:11,860 --> 00:03:13,780 entra, se acabó la sentencia 72 00:03:13,780 --> 00:03:15,680 nos vamos a la siguiente, evalúa 73 00:03:15,680 --> 00:03:18,020 esta, que se cumple esta y se acabó la sentencia 74 00:03:18,020 --> 00:03:19,900 nos vamos a la siguiente, con lo cual 75 00:03:19,900 --> 00:03:21,759 la estoy obligando a evaluarlas 76 00:03:21,759 --> 00:03:23,659 todas, sin embargo, si yo 77 00:03:23,659 --> 00:03:25,659 esta ya es true, las demás 78 00:03:25,659 --> 00:03:27,620 no quiero evaluarlas, ya no me interesan, ya sé que son 79 00:03:27,620 --> 00:03:29,139 falsas, entonces 80 00:03:29,139 --> 00:03:31,580 este código lo puedo dejar así y funciona 81 00:03:31,580 --> 00:03:33,479 y está bien, pero la máquina virtual la tengo 82 00:03:33,479 --> 00:03:35,599 haciendo esto, ahora haciendo 83 00:03:35,599 --> 00:03:37,479 esto, ahora haciendo esto, pues para qué 84 00:03:37,479 --> 00:03:38,199 qué necesidad 85 00:03:38,199 --> 00:03:41,639 mucho mejor si lo metemos en una 86 00:03:41,639 --> 00:03:43,740 else if, ¿verdad? 87 00:03:49,800 --> 00:03:51,060 pero claro, la metemos 88 00:03:51,060 --> 00:03:52,960 en un else if porque sabemos que 89 00:03:52,960 --> 00:03:55,039 solo nos interesa una de todas 90 00:03:55,039 --> 00:03:57,020 ellas, una, si nos 91 00:03:57,020 --> 00:03:58,120 interesaran varias 92 00:03:58,120 --> 00:04:00,300 no podríamos meterlo en un else if 93 00:04:00,300 --> 00:04:05,599 vale, y esta ya no hace parte 94 00:04:05,599 --> 00:04:06,800 que ponga un else if 95 00:04:06,800 --> 00:04:09,460 la meto en el else que queda y se acabó 96 00:04:09,460 --> 00:04:10,719 esta ya la meto en el else 97 00:04:10,719 --> 00:04:14,250 vale 98 00:04:14,250 --> 00:04:15,650 y 99 00:04:15,650 --> 00:04:19,149 ahora ya este código es más bonito 100 00:04:19,149 --> 00:04:19,829 tengo 101 00:04:19,829 --> 00:04:22,149 7 posibilidades 102 00:04:22,149 --> 00:04:24,569 un else if con 7 ramas 103 00:04:24,569 --> 00:04:29,149 y funciona perfectamente 104 00:04:29,149 --> 00:04:30,629 vale, entonces diréis 105 00:04:30,629 --> 00:04:32,389 ¿para qué has hecho esta chorrada de ejercicio? 106 00:04:33,089 --> 00:04:33,370 bueno 107 00:04:33,370 --> 00:04:36,129 para enseñar lo del sistema 108 00:04:36,129 --> 00:04:37,250 no solo 109 00:04:37,250 --> 00:04:40,269 vale, pero efectivamente 110 00:04:40,269 --> 00:04:41,310 ahora que me lo recordáis 111 00:04:41,310 --> 00:04:44,129 ahora ya cuando uno se pone 112 00:04:44,129 --> 00:04:45,990 a dejar bonitas las cosas o lo que sea 113 00:04:45,990 --> 00:04:47,810 pues efectivamente 114 00:04:47,810 --> 00:04:50,009 podría decir, vamos a ver, voy a meter 115 00:04:50,009 --> 00:04:51,189 esto en un else if de verdad 116 00:04:51,189 --> 00:04:53,449 y la condición 117 00:04:53,449 --> 00:04:54,750 restante 118 00:04:54,750 --> 00:04:57,689 que sería 119 00:04:57,689 --> 00:05:00,209 que no fueran válido 120 00:05:00,209 --> 00:05:01,790 pues en esa ya digo bye bye 121 00:05:01,790 --> 00:05:04,269 y ya no tengo que poner ni system exit 122 00:05:04,269 --> 00:05:06,189 ni nada, porque el system exit 123 00:05:06,189 --> 00:05:08,110 es como una sentencia de ruptura 124 00:05:08,110 --> 00:05:10,170 de los antiguos lenguajes 125 00:05:10,170 --> 00:05:12,230 no estructurados, que hay veces 126 00:05:12,230 --> 00:05:14,410 que hay que ponerla, porque yo tengo que salir en ese momento 127 00:05:14,410 --> 00:05:15,689 pero es innecesaria 128 00:05:15,689 --> 00:05:23,430 entonces, si yo cambio esto 129 00:05:23,430 --> 00:05:25,310 y pongo aquí mi mensajito de salida 130 00:05:25,310 --> 00:05:29,769 claro, lo comentaré 131 00:05:29,769 --> 00:05:31,509 si yo lo pongo así 132 00:05:31,509 --> 00:05:33,930 ahora ya no necesito ni system exit 133 00:05:33,930 --> 00:05:35,709 ni nada, porque si el número no es válido 134 00:05:35,709 --> 00:05:37,490 va a irse aquí 135 00:05:37,490 --> 00:05:39,930 vamos a ir al mensaje y ya, va a ir a la siguiente 136 00:05:39,930 --> 00:05:41,810 como la siguiente no existe 137 00:05:41,810 --> 00:05:43,769 va a terminar, y esa es la forma 138 00:05:43,769 --> 00:05:45,949 buena de acabar los programas, que acaben 139 00:05:45,949 --> 00:05:47,470 porque han terminado las sentencias 140 00:05:47,470 --> 00:05:49,970 no porque yo en mitad, porque me ha dado la gana 141 00:05:49,970 --> 00:05:51,250 le he dicho, eh, rompe 142 00:05:51,250 --> 00:05:53,269 la forma buena de 143 00:05:53,269 --> 00:05:54,790 construir un código 144 00:05:54,790 --> 00:05:57,730 es de tal manera que yo lo hago para que 145 00:05:57,730 --> 00:05:59,790 cuando haya acabado 146 00:05:59,790 --> 00:06:01,829 las sentencias, en ese momento el código termine 147 00:06:01,829 --> 00:06:03,069 entonces 148 00:06:03,069 --> 00:06:05,649 una vez que ya he hecho yo mi código, digo 149 00:06:05,649 --> 00:06:07,670 hombre, queda mucho más bonito si yo digo 150 00:06:07,670 --> 00:06:09,829 vamos a ver, voy a meter una rama 151 00:06:09,829 --> 00:06:11,829 más y si no es ninguno de los anteriores 152 00:06:11,829 --> 00:06:13,769 pues ya está, no es válido 153 00:06:13,769 --> 00:06:15,750 y se acabó, en ese caso esto 154 00:06:15,750 --> 00:06:17,810 de aquí nos sobraría y por eso lo voy a 155 00:06:17,810 --> 00:06:19,910 comentar, lo voy a dejar ahí comentado 156 00:06:19,910 --> 00:06:21,670 para que no se os olvide que bueno, que esto 157 00:06:21,670 --> 00:06:23,610 existe, pero no lo uséis 158 00:06:23,610 --> 00:06:25,230 a ser posible 159 00:06:25,230 --> 00:06:29,170 claro, es que lo he comentado 160 00:06:29,170 --> 00:06:30,410 a todos, a todo esto fuera 161 00:06:30,410 --> 00:06:33,170 simplemente el código se ha quedado 162 00:06:33,170 --> 00:06:35,089 aquí, vale, y mucho más 163 00:06:35,089 --> 00:06:35,629 bonito así 164 00:06:35,629 --> 00:06:37,230 vale 165 00:06:37,230 --> 00:06:39,649 entonces, aun siendo bonito 166 00:06:39,649 --> 00:06:42,410 todavía puede ser más bonito 167 00:06:42,410 --> 00:06:43,569 pero 168 00:06:43,569 --> 00:06:45,850 mucho más 169 00:06:45,850 --> 00:06:48,110 ya, pero no porque lo compactemos 170 00:06:48,110 --> 00:06:50,029 porque es que eso no se puede compactar 171 00:06:50,029 --> 00:06:52,269 o sea, es que eso son esas condiciones y las tengo que evaluar 172 00:06:52,269 --> 00:06:52,750 sí o sí 173 00:06:52,750 --> 00:06:55,449 no hay tutía, vale 174 00:06:55,449 --> 00:06:57,910 pero, existe 175 00:06:57,910 --> 00:07:00,329 otra forma de expresar la sentencia 176 00:07:00,329 --> 00:07:02,529 de decisión, ahora mismo conocemos 177 00:07:02,529 --> 00:07:04,189 para las decisiones en general 178 00:07:04,189 --> 00:07:06,949 El famoso operador ternario 179 00:07:06,949 --> 00:07:08,129 Que ahora ya 180 00:07:08,129 --> 00:07:09,870 Vemos clarísimamente 181 00:07:09,870 --> 00:07:11,730 Que es un if en realidad 182 00:07:11,730 --> 00:07:15,310 Ahora ya vemos 183 00:07:15,310 --> 00:07:18,800 Más claro que nunca 184 00:07:18,800 --> 00:07:22,139 Que cuando hemos hecho antes 185 00:07:22,139 --> 00:07:24,720 Una sentencia de decisión 186 00:07:24,720 --> 00:07:26,160 Pues de este estilo 187 00:07:26,160 --> 00:07:27,459 Int n 188 00:07:27,459 --> 00:07:30,100 Se cumple esta condición 189 00:07:30,100 --> 00:07:32,540 Entonces le doy el valor 3 190 00:07:32,540 --> 00:07:33,680 Si no le doy el 7 191 00:07:34,339 --> 00:07:38,959 Ahora ya sí que vemos que lo que estábamos haciendo cuando hacíamos esto era esto en realidad, ¿no? 192 00:07:39,399 --> 00:07:47,300 Si se cumple la condición n igual a 3, el se n igual a 7, ¿vale? 193 00:07:48,120 --> 00:07:55,319 Esto es una forma en una única línea de escribir esto, pero es lo mismo, ahora ya lo vemos, ¿no? 194 00:07:55,319 --> 00:08:00,839 Ahora ya que tenemos la sentencia i, vemos que esto es una manera de escribir esto de aquí, ¿no? 195 00:08:00,839 --> 00:08:03,160 Que cuando estamos asignando un valor a una variable 196 00:08:03,160 --> 00:08:04,839 o este o este 197 00:08:04,839 --> 00:08:06,220 y solamente eso 198 00:08:06,220 --> 00:08:09,939 pues esas dos alternativas de asignación 199 00:08:09,939 --> 00:08:11,519 esas dos alternativas de asignación 200 00:08:11,519 --> 00:08:12,560 las podemos poner aquí 201 00:08:12,560 --> 00:08:15,019 en la asignación condicional, ¿vale? 202 00:08:15,459 --> 00:08:16,480 Bueno, pues entonces 203 00:08:16,480 --> 00:08:19,439 formas de hacer condiciones 204 00:08:19,439 --> 00:08:21,740 ya hemos visto esto, repito 205 00:08:21,740 --> 00:08:23,139 pero esto solamente es válido 206 00:08:23,139 --> 00:08:25,339 cuando lo que yo quiero hacer es la asignación 207 00:08:25,339 --> 00:08:26,879 de un valor a una variable 208 00:08:26,879 --> 00:08:29,079 ¿vale? El if general 209 00:08:29,079 --> 00:08:32,139 que es válido para lo que me dé a mí la gana hacer 210 00:08:32,139 --> 00:08:33,320 por supuesto 211 00:08:33,320 --> 00:08:34,899 y luego el if, el save 212 00:08:34,899 --> 00:08:37,059 cuando yo tengo un if anidado 213 00:08:37,059 --> 00:08:39,259 y lo quiero compactar 214 00:08:39,259 --> 00:08:40,539 y ya sé que eso 215 00:08:40,539 --> 00:08:43,700 pues se traduce en última instancia 216 00:08:43,700 --> 00:08:45,139 a tener varias ramas 217 00:08:45,139 --> 00:08:45,980 excluyentes 218 00:08:45,980 --> 00:08:48,539 en función de varias condiciones 219 00:08:48,539 --> 00:08:50,940 esa es toda la sintaxis de decisión que hemos visto 220 00:08:50,940 --> 00:08:51,639 vale 221 00:08:51,639 --> 00:08:54,360 pues en el caso particular 222 00:08:54,360 --> 00:08:56,700 de que yo veo efectivamente 223 00:08:56,700 --> 00:08:58,799 que tengo un programa con varias posibilidades 224 00:08:58,799 --> 00:08:59,500 varias ramas 225 00:08:59,500 --> 00:09:02,779 ¿y de qué depende irme por una o por otra? 226 00:09:02,860 --> 00:09:04,440 depende del valor de una variable 227 00:09:04,440 --> 00:09:05,460 y depende de eso 228 00:09:05,460 --> 00:09:09,179 pues este caso es ese caso concreto 229 00:09:09,179 --> 00:09:11,259 tengo varias ramas 230 00:09:11,259 --> 00:09:13,159 y dependen de lo que valga 231 00:09:13,159 --> 00:09:13,899 una variable 232 00:09:13,899 --> 00:09:17,419 no dependen de otra condición más compleja 233 00:09:17,419 --> 00:09:19,059 sino de lo que valga 234 00:09:19,059 --> 00:09:21,340 una variable, pues en ese caso concreto 235 00:09:21,340 --> 00:09:23,279 en el cual 236 00:09:23,279 --> 00:09:24,779 la rama por la que me voy 237 00:09:24,779 --> 00:09:26,500 depende de si num es este valor 238 00:09:26,500 --> 00:09:52,490 o si num es igual a este, o si num es igual a este otro, en ese caso concreto, podemos usar otra sentencia, que es la sentencia switch, que lo va a dejar más claro, vale, pues entonces, este mismo código, esto mismo hecho con esa sentencia switch, vale, ¿cómo se hace?, pues se escribe la palabra de java switch, vale, 239 00:09:52,490 --> 00:09:55,730 luego que se escribe 240 00:09:55,730 --> 00:09:57,370 entre paréntesis 241 00:09:57,370 --> 00:09:59,070 la variable 242 00:09:59,070 --> 00:10:00,850 ¿vale? 243 00:10:01,549 --> 00:10:03,870 de la que en función de su valor hacemos una cosa 244 00:10:03,870 --> 00:10:05,509 u otra, en mi caso ¿cuál es? 245 00:10:05,549 --> 00:10:07,549 de la variable num, depende del valor de num 246 00:10:07,549 --> 00:10:09,549 vale 247 00:10:09,549 --> 00:10:11,950 y ahora abrimos el bloque 248 00:10:11,950 --> 00:10:12,529 del switch 249 00:10:12,529 --> 00:10:14,809 y ahora empezamos a distinguir los casos 250 00:10:14,809 --> 00:10:17,429 que num es este valor 251 00:10:17,429 --> 00:10:19,470 hago todo esto, que num es este valor 252 00:10:19,470 --> 00:10:21,970 hago todo esto, ¿y cómo se distinguen los casos? 253 00:10:22,490 --> 00:10:36,190 Pues con la palabra reservada, case, esta de aquí, espacio y el valor, el posible valor, 1, 2 puntos y ahora ponemos después de esos 2 puntos las sentencias. 254 00:10:36,429 --> 00:10:40,750 En mi caso era lunes, pero pueden ser muchas. 255 00:10:44,299 --> 00:10:54,100 Vale, y una vez que yo he puesto todas las sentencias que quiero que se hagan en el caso de que num sea igual a 1, que en este caso solo es una, pero podrían ser muchas, 256 00:10:54,100 --> 00:10:56,340 una vez que las he puesto 257 00:10:56,340 --> 00:11:00,269 calzo y un break 258 00:11:00,269 --> 00:11:02,049 que ahora ya 259 00:11:02,049 --> 00:11:03,730 veremos por qué 260 00:11:03,730 --> 00:11:09,139 en el caso 2, pues lo mismo 261 00:11:09,139 --> 00:11:10,259 pero martes 262 00:11:10,259 --> 00:11:28,210 caso 3 263 00:11:28,210 --> 00:11:30,389 lo mismo 264 00:11:30,389 --> 00:11:35,100 pero miércoles 265 00:11:35,100 --> 00:11:57,220 5, viernes 266 00:11:57,220 --> 00:12:08,769 6, sábado 267 00:12:08,769 --> 00:12:14,669 y 7 268 00:12:14,669 --> 00:12:16,409 sí, un segundito 269 00:12:16,409 --> 00:12:20,690 Venga, a ver 270 00:12:20,690 --> 00:12:23,549 Vale, miércoles, domingo 271 00:12:23,549 --> 00:12:28,929 Mira, este se acaba de despertar 272 00:12:28,929 --> 00:12:31,629 Y no sabe ni de qué está 273 00:12:31,629 --> 00:12:34,889 Ah, ya, ya, ya 274 00:12:34,889 --> 00:12:37,789 Bueno, venga, a ver, entonces, la sentencia switch case 275 00:12:37,789 --> 00:12:40,070 Silencio 276 00:12:40,070 --> 00:12:42,330 Esta sentencia es otra manera de 277 00:12:42,330 --> 00:12:46,289 Plantear un programa que va por varias ramas 278 00:12:46,289 --> 00:12:48,090 como en el nuestro, que va por la rama de mostrar 279 00:12:48,090 --> 00:12:49,629 lunes, mostrar martes, mostrar miércoles. 280 00:12:49,990 --> 00:12:51,909 ¿Y de qué depende que vaya por una rama o por otra? 281 00:12:52,309 --> 00:12:54,129 Depende del valor de una variable. 282 00:12:54,710 --> 00:12:56,750 ¿Vale? No es como el 283 00:12:56,750 --> 00:12:57,710 el safe es general. 284 00:12:58,389 --> 00:12:59,509 En el safe que vaya 285 00:12:59,509 --> 00:13:01,330 que 286 00:13:01,330 --> 00:13:08,080 en el safe que vaya de una rama 287 00:13:08,080 --> 00:13:09,480 que vaya por una rama o por otra, 288 00:13:10,080 --> 00:13:12,340 depende de la condición que haya aquí. Esta condición 289 00:13:12,340 --> 00:13:14,120 puede ser cualquiera, una condición muy 290 00:13:14,120 --> 00:13:15,320 compleja, lo que sea. 291 00:13:16,340 --> 00:13:16,740 ¿Vale? 292 00:13:17,120 --> 00:13:18,500 Entonces, el safe es general. 293 00:13:18,500 --> 00:13:21,460 puedo ir por varias ramas dependiendo de la condición 294 00:13:21,460 --> 00:13:22,419 que a mí me dé la gana 295 00:13:22,419 --> 00:13:24,259 en el switch case 296 00:13:24,259 --> 00:13:27,539 yo puedo ir por varias ramas 297 00:13:27,539 --> 00:13:29,120 pero depende del valor 298 00:13:29,120 --> 00:13:30,000 de una variable 299 00:13:30,000 --> 00:13:33,240 solamente para ese caso usamos esa sentencia 300 00:13:33,240 --> 00:13:34,240 solo para ese caso 301 00:13:34,240 --> 00:13:36,899 bueno, pues en este caso, la sintaxis 302 00:13:36,899 --> 00:13:39,059 ¿cuál sería? entre paréntesis siempre 303 00:13:39,059 --> 00:13:40,539 la variable de la cual depende 304 00:13:40,539 --> 00:13:42,820 y luego, seguido del case 305 00:13:42,820 --> 00:13:45,240 los posibles valores que contemplamos 306 00:13:45,240 --> 00:13:47,019 lo que haya que hacer 307 00:13:47,019 --> 00:13:48,240 que pueden ser una o muchas 308 00:13:48,240 --> 00:13:50,580 y luego seguido de break 309 00:13:50,580 --> 00:13:52,580 yo aquí tenía 7 casos 310 00:13:52,580 --> 00:13:53,639 y me diréis 311 00:13:53,639 --> 00:13:55,740 y si no es ninguno de los anteriores 312 00:13:55,740 --> 00:13:57,480 porque el save te permitía un else 313 00:13:57,480 --> 00:13:59,000 y si no es ninguno de los anteriores 314 00:13:59,000 --> 00:14:02,220 pues este también, si no es ninguno de los anteriores 315 00:14:02,220 --> 00:14:04,039 tú pones aquí un default 316 00:14:04,039 --> 00:14:07,440 y el default significa 317 00:14:07,440 --> 00:14:09,200 no ha sido ninguna de las anteriores 318 00:14:09,200 --> 00:14:11,440 y en este caso 319 00:14:11,440 --> 00:14:13,879 sería este mensajito 320 00:14:13,879 --> 00:14:14,360 de salir 321 00:14:14,360 --> 00:14:18,960 bueno pues 322 00:14:18,960 --> 00:14:22,500 es otra posibilidad 323 00:14:22,500 --> 00:14:23,860 usar esta sentencia 324 00:14:23,860 --> 00:14:26,399 y queda más bonito 325 00:14:26,399 --> 00:14:28,299 porque cuando uno 326 00:14:28,299 --> 00:14:30,360 identifica rápidamente, ah, que en función de una 327 00:14:30,360 --> 00:14:32,139 variable hago esto, hago esto, hago esto 328 00:14:32,139 --> 00:14:34,360 pues ya está, ya automáticamente 329 00:14:34,360 --> 00:14:36,360 automáticamente pienso en el switch case 330 00:14:36,360 --> 00:14:38,059 lo planto y ya 331 00:14:38,059 --> 00:14:40,259 el que lo ve ahí dice, ah, vale 332 00:14:40,259 --> 00:14:42,240 ya ve rápidamente que esta variable 333 00:14:42,240 --> 00:14:43,639 es como si fuera 334 00:14:43,639 --> 00:14:46,200 la que manda 335 00:14:46,200 --> 00:14:48,200 y esta variable es la que su valor 336 00:14:48,200 --> 00:14:49,799 manda para decidir algo 337 00:14:49,799 --> 00:14:52,059 lo ve uno ahí más rápido que en un 338 00:14:52,059 --> 00:14:54,299 infelsafe, que tiene que meterse en la condición, etc. 339 00:14:55,059 --> 00:14:55,899 ¿En el deporte 340 00:14:55,899 --> 00:14:57,279 falta un break? No. 341 00:14:57,700 --> 00:15:00,120 Lo del break ahora lo vamos más a ello. 342 00:15:00,860 --> 00:15:02,080 ¿Vale? Esta sería la sintaxis 343 00:15:02,080 --> 00:15:03,299 general de cómo funciona. 344 00:15:03,679 --> 00:15:05,059 Y en los casos en los que se usa. 345 00:15:05,620 --> 00:15:08,240 Que está claro en qué casos se usa. En los casos en los cuales 346 00:15:08,240 --> 00:15:10,179 las diferentes ramas dependen de una variable. 347 00:15:10,620 --> 00:15:11,559 Del valor de una variable. 348 00:15:11,559 --> 00:15:12,059 Vale. 349 00:15:12,820 --> 00:15:14,379 Y aquí yo he puesto un entero. 350 00:15:14,960 --> 00:15:16,899 Pero podría ser una variable 351 00:15:16,899 --> 00:15:19,559 de cualquier tipo primitivo. 352 00:15:21,259 --> 00:15:21,779 Incluyendo 353 00:15:21,779 --> 00:15:22,440 el string 354 00:15:22,440 --> 00:15:25,779 o sea, hasta cierta versión 355 00:15:25,779 --> 00:15:27,559 de Java 356 00:15:27,559 --> 00:15:29,759 no sé cuál, no se 357 00:15:29,759 --> 00:15:31,220 podían poner variables 358 00:15:31,220 --> 00:15:33,240 no primitivas ahí 359 00:15:33,240 --> 00:15:35,200 pero a partir de 360 00:15:35,200 --> 00:15:37,000 ya la 10 o no sé cuál 361 00:15:37,000 --> 00:15:39,679 y así se puede, es decir, yo podría hacer un switch case 362 00:15:39,679 --> 00:15:40,600 así también 363 00:15:40,600 --> 00:15:43,360 en el, por ejemplo 364 00:15:43,360 --> 00:15:44,500 tenemos aquí 365 00:15:44,500 --> 00:15:49,820 un string que yo he leído por teclado 366 00:15:49,820 --> 00:15:51,779 o lo que sea 367 00:15:51,779 --> 00:15:52,779 tengo yo aquí un string 368 00:15:52,779 --> 00:15:57,009 vale, y ahora en función 369 00:15:57,009 --> 00:15:58,429 del valor de esta cadena 370 00:15:58,429 --> 00:16:00,549 quiero hacer una cosa, quiero hacer otra 371 00:16:00,549 --> 00:16:03,110 vale, pues pongo aquí el nombre de la variable 372 00:16:03,110 --> 00:16:05,029 en función de la cual 373 00:16:05,029 --> 00:16:07,090 tomo la decisión, y ahora en los 374 00:16:07,090 --> 00:16:08,990 case, tomo los valores 375 00:16:08,990 --> 00:16:11,070 que yo quiero contemplar, pues que 376 00:16:11,070 --> 00:16:13,350 la cadena contiene esto 377 00:16:13,350 --> 00:16:15,029 y pongo 378 00:16:15,029 --> 00:16:17,169 un valor compatible con una cadena 379 00:16:17,169 --> 00:16:19,210 aquí he puesto un valor 380 00:16:19,210 --> 00:16:19,909 compatible 381 00:16:19,909 --> 00:16:22,830 con un número, que es 382 00:16:22,830 --> 00:16:24,950 1, como podría poner 7, 28 383 00:16:24,950 --> 00:16:26,870 menos 2, vale 384 00:16:26,870 --> 00:16:28,750 yo aquí pongo cualquier 385 00:16:28,750 --> 00:16:30,610 valor compatible con la variable 386 00:16:30,610 --> 00:16:32,889 en este caso un valor entero porque num es 387 00:16:32,889 --> 00:16:34,710 entero, entonces como num es 388 00:16:34,710 --> 00:16:36,929 entero, todo lo que yo ponga 389 00:16:36,929 --> 00:16:38,710 aquí tienen que ser números enteros 390 00:16:38,710 --> 00:16:40,830 números enteros, vale 391 00:16:40,830 --> 00:16:47,240 aquí esto 392 00:16:47,240 --> 00:16:48,960 ¿veis? 393 00:16:51,240 --> 00:16:51,720 claro 394 00:16:51,720 --> 00:16:52,960 porque quería poner una variable 395 00:16:52,960 --> 00:16:55,639 pero como no tenía más variables declaradas 396 00:16:55,639 --> 00:17:00,740 imaginaos que yo pongo aquí esto 397 00:17:00,740 --> 00:17:02,039 porque esto sí que no lo puedo 398 00:17:02,039 --> 00:17:03,679 en cualquier cosa, ¿vale? 399 00:17:03,740 --> 00:17:06,119 n igual a 1 400 00:17:06,119 --> 00:17:11,059 ¿vale? y quiero poner esto 401 00:17:11,059 --> 00:17:12,660 me podríais decir 402 00:17:12,660 --> 00:17:13,059 oye 403 00:17:13,059 --> 00:17:16,720 y esto no me deja, yo quiero decir 404 00:17:16,720 --> 00:17:18,200 en el caso de que num sea 1 405 00:17:18,200 --> 00:17:20,440 pero uno lo guarda en una variable 406 00:17:20,440 --> 00:17:21,940 y le pasa, no 407 00:17:21,940 --> 00:17:24,039 no es para usarlo así 408 00:17:24,039 --> 00:17:26,900 esta sentencia, no es para usarlo así 409 00:17:26,900 --> 00:17:28,660 si yo quiero esto 410 00:17:28,660 --> 00:17:30,700 tendría que hacer un if, if num 411 00:17:30,700 --> 00:17:31,660 doble igual n 412 00:17:31,660 --> 00:17:34,079 porque entonces sí 413 00:17:34,079 --> 00:17:36,380 pero esta sentencia es para 414 00:17:36,380 --> 00:17:38,579 comparar el valor de una variable 415 00:17:38,579 --> 00:17:40,619 con valores concretos, para ese caso 416 00:17:40,619 --> 00:17:42,519 con valores constantes 417 00:17:42,519 --> 00:17:44,940 que se llaman, pero bueno, el concepto de constante todavía no lo tenemos 418 00:17:44,940 --> 00:17:46,619 entonces, que os quede ahora 419 00:17:46,619 --> 00:17:48,240 que aquí es para valores concretos 420 00:17:48,240 --> 00:17:50,539 entonces esta sentencia pega cuando tienes 421 00:17:50,539 --> 00:17:52,519 un conjunto de valores concretos 422 00:17:52,519 --> 00:17:54,119 que ya lo sabes, 3, 7, 12 423 00:17:54,119 --> 00:17:56,519 o en el caso de una cadena, hola, adiós, no sé qué 424 00:17:56,519 --> 00:17:58,859 y quieres hacer una cosa u otra 425 00:17:58,859 --> 00:18:00,640 en función de si nos movemos 426 00:18:00,640 --> 00:18:02,880 en alguno de esos valores concretos 427 00:18:02,880 --> 00:18:04,119 que tú ya sabes y conoces 428 00:18:04,119 --> 00:18:06,920 que en este caso eran 1, 2, 3, 4, 5, 6, 7 429 00:18:06,920 --> 00:18:08,059 ¿vale? 430 00:18:08,500 --> 00:18:10,059 pero aquí no ponemos variables 431 00:18:10,059 --> 00:18:13,119 bueno, pues en este caso 432 00:18:13,119 --> 00:18:15,220 esto se adapta a lo que queríamos 433 00:18:15,220 --> 00:18:17,019 yo tengo un conjunto 434 00:18:17,019 --> 00:18:18,160 de valores concretos 435 00:18:18,160 --> 00:18:20,640 1, 2, 3, 4, 5, 6 y 7 436 00:18:20,640 --> 00:18:22,099 y en función 437 00:18:22,099 --> 00:18:24,259 de si una variable toma 438 00:18:24,259 --> 00:18:26,299 S o S o S o S concreto 439 00:18:26,299 --> 00:18:27,240 quiero hacer una cosa u otra 440 00:18:27,240 --> 00:18:30,500 pues estoy en ese caso, pues entonces en ese caso 441 00:18:30,500 --> 00:18:31,400 si se adapta a esto 442 00:18:31,400 --> 00:18:32,559 ¿vale? 443 00:18:33,619 --> 00:18:35,039 lo que estábamos diciendo 444 00:18:35,039 --> 00:18:37,359 poner tipos compatibles 445 00:18:37,359 --> 00:18:39,940 aquí he puesto esto porque estos son números enteros 446 00:18:39,940 --> 00:18:42,420 pero si mi switch tiene dentro 447 00:18:42,420 --> 00:18:43,680 una variable string 448 00:18:43,680 --> 00:18:46,380 aquí tendré que poner tipos compatibles 449 00:18:46,380 --> 00:18:46,960 con string 450 00:18:46,960 --> 00:18:49,180 ¿vale? 451 00:18:55,359 --> 00:18:56,400 lo que sea 452 00:18:56,400 --> 00:18:59,920 ¿vale? entonces el tipo que ponga aquí 453 00:18:59,920 --> 00:19:01,819 tiene que ser compatible con la variable 454 00:19:01,819 --> 00:19:04,160 el switch case se usa en general 455 00:19:04,160 --> 00:19:06,480 pues con números enteros 456 00:19:06,480 --> 00:19:07,859 en función de una variable entera 457 00:19:07,859 --> 00:19:10,220 si toma un valor de un conjunto 458 00:19:10,220 --> 00:19:12,279 o con cadenas, yo tengo una cadena 459 00:19:12,279 --> 00:19:14,539 y si la cadena es nombre, hago una cosa 460 00:19:14,539 --> 00:19:15,740 es apellido, hago otra cosa 461 00:19:15,740 --> 00:19:17,720 vale 462 00:19:17,720 --> 00:19:20,180 antes no se permitía que aquí hubiera 463 00:19:20,180 --> 00:19:22,720 repito, tipos primitivos 464 00:19:22,720 --> 00:19:23,279 de hecho 465 00:19:23,279 --> 00:19:25,579 vamos a por 466 00:19:25,579 --> 00:19:27,900 curiosidad, como sé que sois muy curiosos 467 00:19:27,900 --> 00:19:29,259 vamos a ver en qué versión de Java 468 00:19:29,259 --> 00:19:32,200 se incorporó poder meter en un switch case 469 00:19:32,200 --> 00:19:33,480 tipos primitivos 470 00:19:33,480 --> 00:19:35,220 y lo vamos a ver con un truco 471 00:19:35,220 --> 00:19:38,099 a ver, vamos a poner 472 00:19:38,099 --> 00:19:38,859 la lupa 473 00:19:38,859 --> 00:19:44,519 nosotros aquí hasta ahora, esta estructura 474 00:19:44,519 --> 00:19:46,519 ya estáis medio 475 00:19:46,519 --> 00:19:48,140 familiarizados con ella, ¿verdad? 476 00:19:48,220 --> 00:19:49,980 es la estructura de un proyecto de Java 477 00:19:49,980 --> 00:19:52,640 la estructura de un proyecto de Java 478 00:19:52,640 --> 00:19:54,740 donde a partir 479 00:19:54,740 --> 00:19:56,779 de aquí, cuelgan lo que 480 00:19:56,779 --> 00:19:59,079 yo he llamado paquetes 481 00:19:59,079 --> 00:20:00,799 que son carpetitas con mis clases 482 00:20:00,799 --> 00:20:01,700 y ya está 483 00:20:01,700 --> 00:20:04,500 y dentro de esas carpetitas, que todavía no entendemos bien lo que son 484 00:20:04,500 --> 00:20:06,799 pero por ahora nos vale, dentro de esas carpetitas 485 00:20:06,799 --> 00:20:08,700 que se llaman paquetes 486 00:20:08,700 --> 00:20:10,259 en Java, yo ya pongo mis clases 487 00:20:10,259 --> 00:20:12,720 y cada clase un programa, dentro de su main 488 00:20:12,720 --> 00:20:14,619 y todo, es en el punto del que estamos 489 00:20:14,619 --> 00:20:16,180 ahora, vale 490 00:20:16,180 --> 00:20:18,940 entonces, ¿qué ocurre con los códigos 491 00:20:18,940 --> 00:20:20,380 que ponemos aquí, que se compilan 492 00:20:20,380 --> 00:20:22,400 automáticamente, gracias a que 493 00:20:22,400 --> 00:20:24,539 lo estamos haciendo en el Eclipse, si no tendríamos 494 00:20:24,539 --> 00:20:26,500 que ir uno por uno con Java C, bla bla bla 495 00:20:26,500 --> 00:20:28,539 Java C, bla bla bla, pero eso se compila automáticamente 496 00:20:28,539 --> 00:20:28,900 bueno 497 00:20:28,900 --> 00:20:31,339 y estamos en ese punto 498 00:20:31,339 --> 00:20:34,019 bueno, pues aparte de eso aquí ya hay un montón 499 00:20:34,019 --> 00:20:35,740 de rollos, de historias 500 00:20:35,740 --> 00:20:37,880 y una de ellas 501 00:20:37,880 --> 00:20:40,019 de particularidades de los proyectos 502 00:20:40,019 --> 00:20:42,000 una de ellas es que yo puedo elegir 503 00:20:42,000 --> 00:20:43,940 como hay muchas versiones de Java 504 00:20:43,940 --> 00:20:46,359 desde la primera estable 505 00:20:46,359 --> 00:20:47,460 ya buena que hubo 506 00:20:47,460 --> 00:20:49,579 que es la Java 1.2, la 2 507 00:20:49,579 --> 00:20:51,880 hasta ahora, la 22, la 23 508 00:20:51,880 --> 00:20:53,480 o la 24, no sé cuál está ahora 509 00:20:53,480 --> 00:20:55,059 pues ha habido muchas 510 00:20:55,059 --> 00:20:57,420 algunas han sido más 511 00:20:57,420 --> 00:20:59,740 innovadoras que otras y desde 512 00:20:59,740 --> 00:21:02,160 la 8 hasta ahora, tampoco es que haya 513 00:21:02,160 --> 00:21:04,200 habido muchas cosas. Bueno, pues 514 00:21:04,200 --> 00:21:05,819 entonces, como ha habido varias versiones, 515 00:21:06,759 --> 00:21:07,940 tú puedes decidir 516 00:21:07,940 --> 00:21:09,799 tu programa en concreto 517 00:21:09,799 --> 00:21:12,000 con qué versión lo quieres compilar. 518 00:21:12,839 --> 00:21:14,359 ¿Con qué versión lo quieres compilar? 519 00:21:14,940 --> 00:21:16,220 ¿Vale? Porque imagínate que estás 520 00:21:16,220 --> 00:21:17,519 trabajando con servidores 521 00:21:17,519 --> 00:21:19,839 que tienen la máquina virtual 522 00:21:19,839 --> 00:21:22,259 de la versión 1.8. 523 00:21:23,200 --> 00:21:24,059 Pues entonces, 524 00:21:24,180 --> 00:21:25,839 tu programa lo tienes que compilar 525 00:21:25,839 --> 00:21:28,180 con la versión 1.8. 526 00:21:28,180 --> 00:21:33,039 Porque si no, cuando esa máquina virtual trate de interpretarla, no lo va a entender. 527 00:21:33,900 --> 00:21:34,640 ¿Vale? No lo va a entender. 528 00:21:35,079 --> 00:21:37,480 Entonces, tú puedes elegir con qué nivel compilas. 529 00:21:37,920 --> 00:21:43,380 Y tienes que compilar con un nivel que sea el que luego tiene la máquina virtual con la que vas a ejecutar. 530 00:21:45,160 --> 00:21:45,619 ¿Vale? 531 00:21:46,240 --> 00:21:50,759 Entonces, ese nivel de compilación, ¿dónde se cambia? 532 00:21:51,500 --> 00:21:54,460 Pues nosotros no lo estamos cambiando porque estamos dejando el que trae por defecto. 533 00:21:54,519 --> 00:21:56,779 Pero si le damos aquí botón derecho, no lo hagáis vosotros. 534 00:21:56,779 --> 00:21:59,440 Es solo para, bueno, hacedlo si queréis 535 00:21:59,440 --> 00:22:01,640 Pero vamos, que le dais aquí a botón derecho 536 00:22:01,640 --> 00:22:03,940 Y le vais, vale 537 00:22:03,940 --> 00:22:05,700 Le dais a propiedades 538 00:22:05,700 --> 00:22:08,970 Del proyecto 539 00:22:08,970 --> 00:22:16,920 Bueno, voy a quitar la lupa 540 00:22:16,920 --> 00:22:18,940 Para abrir las propiedades y luego lo abro otra vez 541 00:22:18,940 --> 00:22:23,690 Vale 542 00:22:23,690 --> 00:22:25,450 Ahí está 543 00:22:25,450 --> 00:22:27,990 Si os vais a 544 00:22:27,990 --> 00:22:29,829 Las propiedades del proyecto 545 00:22:29,829 --> 00:22:32,390 Veis que hay una cosa 546 00:22:32,390 --> 00:22:34,069 Que dice aquí Java compile 547 00:22:34,069 --> 00:22:36,349 Vale, pues pincháis ahí 548 00:22:36,349 --> 00:22:38,609 y dice con qué nivel de compilación estáis 549 00:22:38,609 --> 00:22:40,549 yo estoy aquí en el 21 550 00:22:40,549 --> 00:22:42,210 no sé en el que estáis vosotros 551 00:22:42,210 --> 00:22:43,930 22, 23, no lo sé, da igual 552 00:22:43,930 --> 00:22:45,430 da un poco lo mismo 553 00:22:45,430 --> 00:22:46,690 pero 554 00:22:46,690 --> 00:22:49,890 podría cambiarlo, vale 555 00:22:49,890 --> 00:22:52,390 si desactivo esta pestañita de aquí 556 00:22:52,390 --> 00:22:54,069 lo puedo cambiar y decir 557 00:22:54,069 --> 00:22:56,609 compílame uno más bajo, el más bajo que me permite 558 00:22:56,609 --> 00:22:58,450 es el 1.3, vale 559 00:22:58,450 --> 00:23:00,450 pues voy a cambiarlo al nivel 560 00:23:00,450 --> 00:23:02,130 de compilación al 1.8 561 00:23:02,130 --> 00:23:04,210 que es uno 562 00:23:04,210 --> 00:23:05,869 en el que trabajan la mayoría 563 00:23:05,869 --> 00:23:07,990 de las máquinas virtuales de los servidores 564 00:23:07,990 --> 00:23:09,309 de las empresas porque fue 565 00:23:09,309 --> 00:23:11,890 el que introdujo ciertas cosas 566 00:23:11,890 --> 00:23:12,589 y ya 567 00:23:12,589 --> 00:23:15,710 migrar de ahí ha sido complicado 568 00:23:15,710 --> 00:23:17,170 en muchas empresas, pues bueno 569 00:23:17,170 --> 00:23:19,730 yo voy a bajar al nivel de compilación 1.8 570 00:23:19,730 --> 00:23:21,309 porque ese es bueno 571 00:23:21,309 --> 00:23:23,769 y la empresa me ha dicho, compila 572 00:23:23,769 --> 00:23:25,529 1.8 porque como compiles por encima 573 00:23:25,529 --> 00:23:27,190 mi servidor no te lo va a interpretar 574 00:23:27,190 --> 00:23:28,329 vale 575 00:23:28,329 --> 00:23:31,690 bajo a 1.8, apply and close 576 00:23:31,690 --> 00:23:33,410 me dice 577 00:23:33,410 --> 00:23:35,210 tengo que recompilártelo otra vez 578 00:23:35,210 --> 00:23:37,410 Al 1.8, ¿te lo recompilo? Sí, vale 579 00:23:37,410 --> 00:23:39,250 Vale, ¿me lo ha recompilado? 580 00:23:39,490 --> 00:23:41,470 Vale, pues el 1.8 581 00:23:41,470 --> 00:23:44,009 Todavía me permitía 582 00:23:44,009 --> 00:23:45,829 Utilizar 583 00:23:45,829 --> 00:23:47,170 String como variables 584 00:23:47,170 --> 00:23:48,630 Va a ser 1.7 585 00:23:48,630 --> 00:23:50,029 Vamos a ver 586 00:23:50,029 --> 00:23:54,009 Voy a bajar al 1.7 587 00:23:54,009 --> 00:23:58,309 Recompila 588 00:23:58,309 --> 00:24:00,869 Vale 589 00:24:00,869 --> 00:24:03,970 Y aquí, ah, no, es que igual ya me había aparecido antes y no lo he visto 590 00:24:03,970 --> 00:24:05,549 ¿Veis? 591 00:24:05,549 --> 00:24:08,430 Aquí ya me ha aparecido 592 00:24:08,430 --> 00:24:09,410 Vale 593 00:24:09,410 --> 00:24:17,359 Un momentito 594 00:24:17,359 --> 00:24:26,009 Vale, todavía no me ha aparecido 595 00:24:26,009 --> 00:24:27,450 Un momento 596 00:24:27,450 --> 00:24:37,150 Venga, vamos a bajar 597 00:24:37,150 --> 00:24:41,200 Al 1, 5 598 00:24:41,200 --> 00:24:42,420 3 599 00:24:42,420 --> 00:24:44,019 Ahí está, bueno, debe ser el 600 00:24:44,019 --> 00:24:46,380 Y a ver un momentito, el 1, 6 601 00:24:46,380 --> 00:24:57,190 El 1, 6 tampoco, y el 1, 7 602 00:24:57,190 --> 00:25:05,319 El 1, 7 ya sí 603 00:25:05,319 --> 00:25:06,220 Vale, entonces fue 604 00:25:06,220 --> 00:25:08,759 El 1, 6, vale 605 00:25:08,759 --> 00:25:14,789 vale, pues esto es como curiosidad 606 00:25:14,789 --> 00:25:16,269 para introducir los niveles de compilación 607 00:25:16,269 --> 00:25:17,849 entonces yo he compilado el 1.6 608 00:25:17,849 --> 00:25:19,849 y me ha aparecido aquí un error 609 00:25:19,849 --> 00:25:22,670 y este error me dice, ojo no puedes 610 00:25:22,670 --> 00:25:24,710 usar una variable 611 00:25:24,710 --> 00:25:26,450 que no sea primitiva 612 00:25:26,450 --> 00:25:28,529 o sea, string no es primitiva, es objeto 613 00:25:28,529 --> 00:25:30,549 en una sentencia switch, no puedes 614 00:25:30,549 --> 00:25:32,809 porque para la versión 1.6 de Java 615 00:25:32,809 --> 00:25:33,730 todavía no se podía 616 00:25:33,730 --> 00:25:37,049 vale, la 1.7 ya sí, entonces si yo ya recompilo 617 00:25:37,049 --> 00:25:39,009 a la 1.7 o a la última 618 00:25:39,009 --> 00:25:39,650 que tengo 619 00:25:39,650 --> 00:25:42,269 que en mi caso es 620 00:25:42,269 --> 00:25:44,490 la 22, pero no sé 621 00:25:44,490 --> 00:25:46,150 qué máquina virtual tengo, entonces 622 00:25:46,150 --> 00:25:48,650 voy a 623 00:25:48,650 --> 00:25:50,509 voy a dejar 624 00:25:50,509 --> 00:25:52,430 la que tenía, porque mi máquina virtual creo que es la 21 625 00:25:52,430 --> 00:25:56,329 vale, si yo recomplio la 21, ya 626 00:25:56,329 --> 00:25:58,349 se me quita ese ruido, ¿vale? entonces 627 00:25:58,349 --> 00:25:59,930 ¿qué querían 628 00:25:59,930 --> 00:26:02,329 simplemente introduciros con esto? que de unas 629 00:26:02,329 --> 00:26:03,769 versiones de Java a otras 630 00:26:03,769 --> 00:26:06,369 hay pequeñas cosas que se han introducido 631 00:26:06,369 --> 00:26:07,950 entonces, a lo mejor 632 00:26:07,950 --> 00:26:10,089 nosotros aquí estamos con la última 633 00:26:10,089 --> 00:26:11,950 versión porque es la maqueta 634 00:26:11,950 --> 00:26:13,049 que ponemos al principio del curso 635 00:26:13,049 --> 00:26:15,529 pero a lo mejor probáis esto 636 00:26:15,529 --> 00:26:17,390 en otras versiones de Java anteriores 637 00:26:17,390 --> 00:26:19,410 y dices, ¿y este error de compilación por qué me sale? 638 00:26:20,089 --> 00:26:21,049 igual es porque 639 00:26:21,049 --> 00:26:23,789 no se había incorporado 640 00:26:23,789 --> 00:26:25,990 esa sintaxis todavía en esa versión 641 00:26:25,990 --> 00:26:27,750 ¿vale? entonces que sepáis 642 00:26:27,750 --> 00:26:29,910 que existen diferentes versiones de Java 643 00:26:29,910 --> 00:26:31,990 yo puedo compilar a cada versión 644 00:26:31,990 --> 00:26:33,910 y que puede haber diferencias 645 00:26:33,910 --> 00:26:35,930 mínimas, pero puede haberlas 646 00:26:35,930 --> 00:26:37,349 entre unas y otras, ¿vale? 647 00:26:37,349 --> 00:26:39,069 por si a uno de repente le aparece algo raro 648 00:26:39,069 --> 00:26:41,390 que sepa que de ese hilo podría tirar 649 00:26:41,390 --> 00:26:43,470 bueno, pues en nuestro caso 650 00:26:43,470 --> 00:26:45,769 como ya estamos por encima 651 00:26:45,769 --> 00:26:47,750 de la 1.6, bastante por encima de la 1.6 652 00:26:47,750 --> 00:26:49,349 podemos usar 653 00:26:49,349 --> 00:26:51,009 un string aquí dentro 654 00:26:51,009 --> 00:26:55,930 el break, diréis 655 00:26:55,930 --> 00:26:57,630 ¿y ese break? ¿qué hace ahí ese break? 656 00:26:58,490 --> 00:26:59,970 ¿es obligatorio ponerlo? 657 00:27:00,910 --> 00:27:01,430 depende 658 00:27:01,430 --> 00:27:03,170 del efecto que yo quiera 659 00:27:03,170 --> 00:27:04,630 depende 660 00:27:04,630 --> 00:27:07,170 si yo no pongo break 661 00:27:07,170 --> 00:27:10,109 ¿Qué hace la máquina virtual? 662 00:27:10,849 --> 00:27:12,210 Es un comportamiento extraño 663 00:27:12,210 --> 00:27:12,650 Pero luego 664 00:27:12,650 --> 00:27:15,190 Evalúa esto 665 00:27:15,190 --> 00:27:17,329 O sea, coge este numerito 666 00:27:17,329 --> 00:27:19,910 Que es igual a num, entra aquí 667 00:27:19,910 --> 00:27:22,369 Y ya sigue 668 00:27:22,369 --> 00:27:24,470 Como un rodillo 669 00:27:24,470 --> 00:27:26,690 Sigue hacia abajo hasta que se encuentre un break 670 00:27:26,690 --> 00:27:28,470 Al margen de que 671 00:27:28,470 --> 00:27:30,410 Este coincida o no 672 00:27:30,410 --> 00:27:31,490 Da igual 673 00:27:31,490 --> 00:27:33,390 Al margen de que coincida o no 674 00:27:33,390 --> 00:27:35,970 Imaginaos que a mí se me ha olvidado aquí poner 675 00:27:35,970 --> 00:27:38,029 estos dos break, porque se me ha olvidado. 676 00:27:38,750 --> 00:27:40,250 Entonces, si el numerito fuera 1, 677 00:27:40,670 --> 00:27:41,650 si el numerito fuera 1, 678 00:27:42,410 --> 00:27:44,549 entraría aquí. Estupendo, ha entrado ahí. 679 00:27:45,609 --> 00:27:46,670 Pero es que ya después 680 00:27:46,670 --> 00:27:47,970 ya se pondría como tonto. 681 00:27:48,569 --> 00:27:50,490 Ya sigue en piloto automático. 682 00:27:50,490 --> 00:27:52,269 Sigue y sigue hacia abajo. 683 00:27:52,589 --> 00:27:54,569 Es decir, empieza a ejecutar 684 00:27:54,569 --> 00:27:56,630 desde que encuentra un valor 685 00:27:56,630 --> 00:27:57,309 que es igual. 686 00:27:58,150 --> 00:28:00,329 Y desde que encuentra un valor que es igual 687 00:28:00,329 --> 00:28:01,809 hasta que encuentre un break. 688 00:28:02,470 --> 00:28:04,089 No hasta el siguiente case. 689 00:28:04,410 --> 00:28:05,470 No hasta el siguiente case. 690 00:28:05,970 --> 00:28:09,250 entonces eso puede inducir a confusión 691 00:28:09,250 --> 00:28:11,250 porque es antiintuitivo 692 00:28:11,250 --> 00:28:11,869 completamente 693 00:28:11,869 --> 00:28:16,460 ¿vale? es completamente 694 00:28:16,460 --> 00:28:18,619 antiintuitivo, uno ve esto y dice 695 00:28:18,619 --> 00:28:18,920 hombre 696 00:28:18,920 --> 00:28:22,039 si es uno hago esto 697 00:28:22,039 --> 00:28:24,519 y ya está, y si es dos hago esto 698 00:28:24,519 --> 00:28:26,200 y ya está, y si es tres hago esto 699 00:28:26,200 --> 00:28:28,660 por eso se llama en el caso uno esto, en el caso dos 700 00:28:28,660 --> 00:28:30,960 pues no, no funciona así 701 00:28:30,960 --> 00:28:32,759 si es uno hago esto 702 00:28:32,759 --> 00:28:34,140 pero no es hago esto 703 00:28:34,140 --> 00:28:36,640 si es uno arranco a partir de ahí 704 00:28:36,640 --> 00:28:37,500 es lo que significa 705 00:28:37,500 --> 00:28:39,900 si es uno, arranco a partir de ahí 706 00:28:39,900 --> 00:28:42,640 y sigo hasta que me encuentre un breve 707 00:28:42,640 --> 00:28:44,779 y sigo, ya es que esto ni lo miro 708 00:28:44,779 --> 00:28:47,140 luego este switch 709 00:28:47,140 --> 00:28:48,220 tiene ese funcionamiento 710 00:28:48,220 --> 00:28:50,140 porque si lo queremos aprovechar de alguna manera 711 00:28:50,140 --> 00:28:51,700 ¿vale? 712 00:28:52,980 --> 00:28:54,220 entonces, porque a lo mejor 713 00:28:54,220 --> 00:28:55,819 lo queremos aprovechar y decir 714 00:28:55,819 --> 00:28:58,200 oye, en cuanto se encuentre una variable 715 00:28:58,200 --> 00:29:00,559 que ya es igual, que haga todo lo que venga a continuación 716 00:29:00,559 --> 00:29:02,019 en cuanto se encuentre una 717 00:29:02,019 --> 00:29:03,700 que ya es igual, lo haga toda 718 00:29:03,700 --> 00:29:05,900 si yo quiero usar ese comportamiento, vale 719 00:29:05,900 --> 00:29:08,299 pero si yo lo quiero usar como comportamiento 720 00:29:08,299 --> 00:29:09,420 de ramas excluyentes 721 00:29:09,420 --> 00:29:11,920 o hace una, o hace la otra, o hace la otra 722 00:29:11,920 --> 00:29:14,180 o hace la otra, tengo que poner el break 723 00:29:14,180 --> 00:29:15,579 no se me puede olvidar 724 00:29:15,579 --> 00:29:18,740 entonces con break o sin break son dos significados 725 00:29:18,740 --> 00:29:21,880 si no tengo break 726 00:29:21,880 --> 00:29:23,940 en cuanto encuentra un número 727 00:29:23,940 --> 00:29:24,859 que es igual a este 728 00:29:24,859 --> 00:29:27,740 entra y empieza 729 00:29:27,740 --> 00:29:30,079 desde ahí, sin break significa 730 00:29:30,079 --> 00:29:31,900 arranco y sigo 731 00:29:31,900 --> 00:29:33,640 ya estos case como si no existieran 732 00:29:33,640 --> 00:29:35,740 sigo cuando, sigo hasta que me encuentre 733 00:29:35,740 --> 00:29:37,799 un break, claro, que este break 734 00:29:37,799 --> 00:29:39,380 ya sí que está puesto 735 00:29:39,380 --> 00:29:41,740 pues en el caso de que la variable es a uno 736 00:29:41,740 --> 00:29:43,599 me haría esta, me haría esta y me haría esta 737 00:29:43,599 --> 00:29:45,319 luego uno 738 00:29:45,319 --> 00:29:47,079 me haría estos tres casos 739 00:29:47,079 --> 00:29:49,740 si la variable es dos, me haría estos dos 740 00:29:49,740 --> 00:29:51,619 si la variable es tres 741 00:29:51,619 --> 00:29:52,420 me haría este solo 742 00:29:52,420 --> 00:29:55,720 pues si queremos utilizar ese 743 00:29:55,720 --> 00:29:57,579 uso, pues lo usamos 744 00:29:57,579 --> 00:29:58,660 ¿vale? 745 00:29:59,380 --> 00:30:01,900 pero normalmente la switch case la usamos 746 00:30:01,900 --> 00:30:03,420 para o me voy por una 747 00:30:03,420 --> 00:30:05,160 o me voy por otra, o me voy por otra 748 00:30:05,160 --> 00:30:06,319 Es decir, excluyo 749 00:30:06,319 --> 00:30:08,220 Normalmente lo usamos así 750 00:30:08,220 --> 00:30:10,140 Entonces, como normalmente la usamos así 751 00:30:10,140 --> 00:30:12,279 Pues normalmente ponemos siempre 752 00:30:12,279 --> 00:30:15,220 Ahí ya capón 753 00:30:15,220 --> 00:30:17,339 El break 754 00:30:17,339 --> 00:30:22,220 Y ya tengo ese funcionamiento 755 00:30:22,220 --> 00:30:24,000 ¿Vale? Ya tengo ese funcionamiento 756 00:30:24,000 --> 00:30:26,240 Bueno, pues 757 00:30:26,240 --> 00:30:28,539 Esa es la razón de que exista 758 00:30:28,539 --> 00:30:29,420 Y lo quitamos 759 00:30:29,420 --> 00:30:31,900 Si el funcionamiento que se genera nos interesa 760 00:30:31,900 --> 00:30:33,420 Nos interesa por alguna razón 761 00:30:33,420 --> 00:30:38,180 ¿Vale? Por ejemplo 762 00:30:38,180 --> 00:30:42,579 a ver 763 00:30:42,579 --> 00:30:43,740 así sobre 764 00:30:43,740 --> 00:30:46,640 la marcha, imaginaos 765 00:30:46,640 --> 00:30:48,440 que tenemos aquí este switch case 766 00:30:48,440 --> 00:30:54,190 con la variable 767 00:30:54,190 --> 00:31:07,180 y pongo aquí 768 00:31:07,180 --> 00:31:09,059 en el caso de que sea 7 769 00:31:09,059 --> 00:31:11,240 pues hago las sentencias 770 00:31:11,240 --> 00:31:12,079 que sean 771 00:31:12,079 --> 00:31:17,200 en el caso de que sea 6 772 00:31:17,200 --> 00:31:18,240 hago 773 00:31:18,240 --> 00:31:21,220 las sentencias que sean 774 00:31:21,220 --> 00:31:32,980 vale, voy a sacar 775 00:31:32,980 --> 00:31:34,880 este código a una clase aparte 776 00:31:34,880 --> 00:31:37,180 aquí, que sea ejemplo switch case 777 00:31:37,180 --> 00:31:39,839 para que nos sirva 778 00:31:39,839 --> 00:31:41,579 para entender bien este funcionamiento 779 00:31:41,579 --> 00:31:43,240 y así no ensucio este ejercicio 780 00:31:43,240 --> 00:31:45,259 a ver 781 00:31:45,259 --> 00:31:50,589 lo voy a sacar 782 00:31:50,589 --> 00:31:51,390 aquí en 783 00:31:51,390 --> 00:31:52,789 proyecto 784 00:31:52,789 --> 00:32:01,349 tenía uno 785 00:32:01,349 --> 00:32:10,190 ejemplo string, no tenía uno específico de proyecto 786 00:32:10,190 --> 00:32:11,549 de decisión 787 00:32:11,549 --> 00:32:15,809 porque lo hemos hecho con los ejercicios 788 00:32:15,809 --> 00:32:18,069 porque lo habíamos hecho con 789 00:32:18,069 --> 00:32:19,990 o sea en el aula virtual no tengo uno 790 00:32:19,990 --> 00:32:21,529 específico de 791 00:32:21,529 --> 00:32:22,230 a ver 792 00:32:22,230 --> 00:32:25,609 para que esté organizado 793 00:32:25,609 --> 00:32:39,519 vale, ya teníamos 794 00:32:39,519 --> 00:32:40,920 los ejercicios 795 00:32:40,920 --> 00:32:41,880 vale 796 00:32:41,880 --> 00:32:44,960 pues voy a hacer un 797 00:32:44,960 --> 00:32:47,559 proyectito aparte con una clase switch case 798 00:32:47,559 --> 00:32:49,500 para ver un poco bien como funciona 799 00:32:49,500 --> 00:32:50,960 y subirlo a modo de ejemplo 800 00:32:50,960 --> 00:33:11,240 venga, vamos a hacernos 801 00:33:11,240 --> 00:33:14,160 una nueva clase 802 00:33:14,160 --> 00:33:19,779 ejemplo 803 00:33:19,779 --> 00:33:21,519 ya está 804 00:33:21,519 --> 00:33:23,019 me hago hoy esa clase 805 00:33:23,019 --> 00:33:25,460 y ahora el ejercicio este voy a quitarle 806 00:33:25,460 --> 00:33:27,579 esto de abajo 807 00:33:27,579 --> 00:33:29,640 para que no se quede estropeado 808 00:33:29,640 --> 00:33:31,680 vale, teníamos las dos versiones 809 00:33:31,680 --> 00:33:32,700 hechas con el save 810 00:33:32,700 --> 00:33:35,000 y hecha con switch case 811 00:33:35,000 --> 00:33:37,660 y ahora todo esto que yo había puesto aquí 812 00:33:37,660 --> 00:33:39,940 para ver como funcionaba 813 00:33:39,940 --> 00:33:40,619 ya lo quito 814 00:33:40,619 --> 00:33:43,700 y ya se me queda el ejercicio 13 815 00:33:43,700 --> 00:33:46,140 Ya he hecho con las dos variantes 816 00:33:46,140 --> 00:33:47,039 Vale 817 00:33:47,039 --> 00:33:50,279 Venga, ahora estamos con el ejemplo de switch case 818 00:33:50,279 --> 00:33:52,200 Para acabar de entender bien como funciona 819 00:33:52,200 --> 00:33:54,359 Pues vamos a ponernos 820 00:33:54,359 --> 00:33:55,779 Un numerito cualquiera 821 00:33:55,779 --> 00:33:59,880 Y ahora nos hacemos 822 00:33:59,880 --> 00:34:04,799 En el caso de que el numerito 823 00:34:04,799 --> 00:34:05,240 Sea 824 00:34:05,240 --> 00:34:14,760 7, por ejemplo 825 00:34:14,760 --> 00:34:16,199 Pues voy a 826 00:34:16,199 --> 00:34:18,559 Mostrar un mensaje 827 00:34:18,559 --> 00:34:23,420 Y ahora me voy a hacer lo mismo 828 00:34:23,420 --> 00:34:31,599 Para, ahora cambio 829 00:34:31,599 --> 00:34:39,059 Vale, voy a partir del 4 830 00:34:39,059 --> 00:34:40,340 Para no hacer tantos case 831 00:34:40,340 --> 00:34:41,099 4 832 00:34:41,099 --> 00:34:43,739 3 833 00:34:43,739 --> 00:34:46,099 2 834 00:34:46,099 --> 00:34:48,300 Y 1 835 00:34:48,300 --> 00:34:50,760 Vale, este switch case es válido, ¿no? 836 00:34:51,760 --> 00:34:52,739 No tengo el break 837 00:34:52,739 --> 00:34:55,260 Entonces, ¿este switch case cómo va a funcionar? 838 00:34:56,360 --> 00:34:56,800 Para 839 00:34:56,800 --> 00:34:58,420 Números 840 00:34:58,420 --> 00:35:00,440 Para 841 00:35:00,440 --> 00:35:01,739 4 842 00:35:01,739 --> 00:35:04,599 Va a mostrar el mensaje 843 00:35:04,599 --> 00:35:05,320 ¿Cuántas veces? 844 00:35:10,559 --> 00:35:11,179 Cuatro veces. 845 00:35:11,679 --> 00:35:14,440 Sin embargo, si le meto el 3, ¿cuántas veces muestra el mensaje? 846 00:35:14,679 --> 00:35:16,599 Ahora lo voy a leer por teclado para que se vea. 847 00:35:27,840 --> 00:35:29,619 Y ahora vamos a leerlo del teclado. 848 00:35:36,329 --> 00:35:36,769 Vale. 849 00:35:39,300 --> 00:35:41,119 Entonces, en función de la variable n, 850 00:35:42,679 --> 00:35:44,000 yo planto este switch case 851 00:35:44,000 --> 00:35:45,760 y vamos a ejecutar esto. 852 00:35:51,699 --> 00:35:52,760 Está esperando un numerito. 853 00:35:52,860 --> 00:35:53,539 Le pongo el 4. 854 00:35:54,280 --> 00:35:55,880 Me pone el mensaje cuatro veces. 855 00:35:56,780 --> 00:35:57,659 Ahora le voy a poner el 3. 856 00:35:58,159 --> 00:35:59,280 Me lo pone tres veces. 857 00:35:59,940 --> 00:36:01,139 Ahora voy a poner el 2. 858 00:36:01,139 --> 00:36:02,420 me lo pone dos veces 859 00:36:02,420 --> 00:36:05,280 ahora voy a poner el 1, me lo pone una vez 860 00:36:05,280 --> 00:36:07,659 entonces esta forma 861 00:36:07,659 --> 00:36:08,559 de funcionar 862 00:36:08,559 --> 00:36:11,300 pues la he simulado yo 863 00:36:11,300 --> 00:36:13,300 con el switch case aprovechándome 864 00:36:13,300 --> 00:36:14,639 de que sé cómo funciona 865 00:36:14,639 --> 00:36:17,699 y por qué lo he podido simular 866 00:36:17,699 --> 00:36:18,019 así 867 00:36:18,019 --> 00:36:21,440 ¿qué ha pasado cuando el numerito ha sido 4? 868 00:36:22,300 --> 00:36:23,420 ha entrado en este case 869 00:36:23,420 --> 00:36:24,099 porque era 4 870 00:36:24,099 --> 00:36:26,739 y como no hay ningún break 871 00:36:26,739 --> 00:36:28,360 ¿qué significa entrar en un case? 872 00:36:28,659 --> 00:36:30,619 significa que arrancas desde ahí 873 00:36:30,619 --> 00:36:32,780 arrancas, y ahí arrancas 874 00:36:32,780 --> 00:36:35,019 y paras cuando llega un break 875 00:36:35,019 --> 00:36:36,400 como no hay ningún break, no ha parado 876 00:36:36,400 --> 00:36:38,519 vale, ahora yo le he metido el 3 877 00:36:38,519 --> 00:36:40,619 aquí ya no ha entrado, porque era 3 878 00:36:40,619 --> 00:36:43,000 pero aquí sí, ¿qué significa entrar? 879 00:36:43,179 --> 00:36:44,760 no significa ejecuto eso solo 880 00:36:44,760 --> 00:36:47,059 significa arranco desde ese punto 881 00:36:47,059 --> 00:36:49,159 arranco desde ese punto 882 00:36:49,159 --> 00:36:50,820 ¿hasta cuándo? 883 00:36:50,880 --> 00:36:53,119 hasta que llegue un break, como no hay ningún break, lo ha mostrado todo 884 00:36:53,119 --> 00:36:55,260 y aquí lo mismo 885 00:36:55,260 --> 00:36:56,380 cuando le he metido un 2 886 00:36:56,380 --> 00:36:59,239 ¿qué significa? en el 4 y en el 3 no ha entrado 887 00:36:59,239 --> 00:37:01,179 ha entrado en el 2, significa arranco 888 00:37:01,179 --> 00:37:03,239 desde ese punto, hasta que llegue un break 889 00:37:03,239 --> 00:37:04,380 ¿vale? 890 00:37:05,739 --> 00:37:07,599 ¿que queremos este funcionamiento? 891 00:37:08,440 --> 00:37:09,340 ¿vale? pues depende 892 00:37:09,340 --> 00:37:11,320 de lo que queramos hacer, depende de lo que queramos 893 00:37:11,320 --> 00:37:13,119 pero repito, normalmente 894 00:37:13,119 --> 00:37:14,780 lo que queremos con un switch case 895 00:37:14,780 --> 00:37:17,159 es distinguir una rama 896 00:37:17,159 --> 00:37:19,320 o hago esto, o hago esto, o hago esto 897 00:37:19,320 --> 00:37:21,179 o hago esto, y no arranco aquí 898 00:37:21,179 --> 00:37:22,139 y hago todo lo demás 899 00:37:22,139 --> 00:37:24,599 entonces en ese caso 900 00:37:24,599 --> 00:37:26,880 lo haríamos con el break, voy a poner aquí 901 00:37:26,880 --> 00:37:37,920 Aquí ejecuta todo el código 902 00:37:37,920 --> 00:37:43,429 Desde el case válido 903 00:37:43,429 --> 00:37:45,210 Desde el case válido ejecuta todo 904 00:37:45,210 --> 00:37:46,670 Pero sin embargo 905 00:37:46,670 --> 00:37:55,800 Si hacemos la versión habitual 906 00:37:55,800 --> 00:38:12,679 Hacemos la versión habitual 907 00:38:12,679 --> 00:38:14,079 Y voy a volver a leer el numerito 908 00:38:14,079 --> 00:38:15,639 Voy a volver a leerlo 909 00:38:15,639 --> 00:38:17,559 Aquí 910 00:38:17,559 --> 00:38:19,380 Lo vuelvo a leer 911 00:38:19,380 --> 00:38:22,320 Con esta versión da igual el número que meta 912 00:38:22,320 --> 00:38:22,960 Da igual 913 00:38:22,960 --> 00:38:24,960 va a mostrar siempre ola 914 00:38:24,960 --> 00:38:26,840 da igual que meta 1, 2, 3 y 4 915 00:38:26,840 --> 00:38:29,320 a ver, si no meto ninguno 916 00:38:29,320 --> 00:38:31,280 de ellos no hará nada, porque no entra en ninguno 917 00:38:31,280 --> 00:38:32,159 de los casos, claro 918 00:38:32,159 --> 00:38:35,400 vale, entonces si ahora ejecutamos esto 919 00:38:35,400 --> 00:38:39,059 para el primer número le meto 920 00:38:39,059 --> 00:38:40,800 el 3, me ha sacado los 3 olas 921 00:38:40,800 --> 00:38:42,760 pero ahora le vuelvo a meter el 3 922 00:38:42,760 --> 00:38:45,179 y me ha sacado solo 1, porque estoy en la otra versión 923 00:38:45,179 --> 00:38:47,260 y aquí da igual lo que haga 924 00:38:47,260 --> 00:38:48,719 le meto un 2, me ha sacado los 2 925 00:38:48,719 --> 00:38:51,239 pero en la otra versión le meto un 2 y solo me lo ha hecho una vez 926 00:38:51,239 --> 00:38:54,789 bueno, pues 927 00:38:54,789 --> 00:38:58,030 eso significa el break 928 00:38:58,030 --> 00:38:58,909 vale 929 00:38:58,909 --> 00:39:00,690 aquí 930 00:39:00,690 --> 00:39:03,130 solo se ejecuta 931 00:39:03,130 --> 00:39:05,829 el case válido en este caso 932 00:39:05,829 --> 00:39:11,650 bueno, pues no hay que complicarse 933 00:39:11,650 --> 00:39:13,070 hay que usar el switch 934 00:39:13,070 --> 00:39:14,909 cuando identificamos 935 00:39:14,909 --> 00:39:16,869 que tengo varias ramas 936 00:39:16,869 --> 00:39:18,429 en mi programa, varias ramas 937 00:39:18,429 --> 00:39:20,829 y que se haga una o que se haga otra 938 00:39:20,829 --> 00:39:22,389 depende del valor de una variable 939 00:39:22,389 --> 00:39:24,710 entonces si identificamos 940 00:39:24,710 --> 00:39:25,969 que esa es nuestra situación 941 00:39:25,969 --> 00:39:28,230 pues ya está 942 00:39:28,230 --> 00:39:30,090 ponemos un switch case con la sintaxis 943 00:39:30,090 --> 00:39:32,250 la variable que sea, que me vale string 944 00:39:32,250 --> 00:39:34,210 los valores que yo 945 00:39:34,210 --> 00:39:36,090 contemplo, pongo un break 946 00:39:36,090 --> 00:39:38,210 para asegurarme que solo se hace 947 00:39:38,210 --> 00:39:39,829 la que toque y ya está 948 00:39:39,829 --> 00:39:42,329 y no hay que darle más vueltas a esto 949 00:39:42,329 --> 00:39:42,869 ¿vale? 950 00:39:45,980 --> 00:39:48,519 ya por último, también desde cierta 951 00:39:48,519 --> 00:39:50,099 versión, que esta ya sí que es 952 00:39:50,099 --> 00:39:52,739 más posterior, no sé si la 10 953 00:39:52,739 --> 00:39:54,380 o cual, se pueden poner 954 00:39:54,380 --> 00:39:56,780 varias opciones en un mismo case separadas por coma 955 00:39:56,780 --> 00:39:59,960 Por ejemplo, vamos a cambiar este switch case 956 00:39:59,960 --> 00:40:02,559 Vamos a darle el numerito 957 00:40:02,559 --> 00:40:12,679 Por ejemplo, si yo en el caso 4 y en el 3 958 00:40:12,679 --> 00:40:14,619 Quiero que se haga lo mismo 959 00:40:14,619 --> 00:40:16,360 Por ejemplo, imaginaos que aquí 960 00:40:16,360 --> 00:40:18,500 Si meto 4, quiero que se muestre la 4 961 00:40:18,500 --> 00:40:19,719 Ahí quiero que se muestre la 3 962 00:40:19,719 --> 00:40:21,039 Ahí quiero que se muestre la 2 963 00:40:21,039 --> 00:40:24,440 Y aquí quiero que se muestre o la 1 964 00:40:24,440 --> 00:40:25,219 Vale 965 00:40:25,219 --> 00:40:28,980 Pero, en el caso de que me hayan metido 966 00:40:28,980 --> 00:40:30,559 5, 6, 7, 8, 9 o 10 967 00:40:30,559 --> 00:40:31,559 Por ejemplo 968 00:40:31,559 --> 00:40:33,639 pues en ese caso quiero que se muestre 969 00:40:33,639 --> 00:40:34,300 hola sin más 970 00:40:34,300 --> 00:40:36,940 pues me puedo hacer un case así 971 00:40:36,940 --> 00:40:39,679 con todos esos valores 972 00:40:39,679 --> 00:40:42,219 5,6 973 00:40:42,219 --> 00:40:44,219 7,8 974 00:40:44,219 --> 00:40:45,719 9,10 975 00:40:45,719 --> 00:40:46,940 por ejemplo 976 00:40:46,940 --> 00:40:57,239 ¿vale? entonces puedo agrupar 977 00:40:57,239 --> 00:40:58,000 varios en uno 978 00:40:58,000 --> 00:41:00,420 bueno, aquí si no pongo el break 979 00:41:00,420 --> 00:41:07,710 entonces esto simplemente 980 00:41:07,710 --> 00:41:10,369 que se introduce cualquiera 981 00:41:10,369 --> 00:41:11,949 de estos, n es 5 982 00:41:11,949 --> 00:41:13,710 o es 6 o es 7 o es 8 983 00:41:13,710 --> 00:41:14,929 Cualquiera de estos 984 00:41:14,929 --> 00:41:16,030 Entra por aquí 985 00:41:16,030 --> 00:41:19,150 Y break, se acabó, ya no hace más 986 00:41:19,150 --> 00:41:22,110 ¿Que no se ha introducido cualquiera de ellos? 987 00:41:22,190 --> 00:41:22,909 Pues sigue mirando 988 00:41:22,909 --> 00:41:25,550 ¿Es el 4? Sí, pues entra por aquí 989 00:41:25,550 --> 00:41:27,230 Y break, se acabó, ya no hace más 990 00:41:27,230 --> 00:41:29,590 Que no 991 00:41:29,590 --> 00:41:31,409 Sigue, sigue mirando 992 00:41:31,409 --> 00:41:33,610 ¿Es el 3? 993 00:41:34,829 --> 00:41:35,710 Pues entra por aquí 994 00:41:35,710 --> 00:41:37,650 Y break, se acabó, ya no hace más 995 00:41:37,650 --> 00:41:39,010 ¿Vale? 996 00:41:40,750 --> 00:41:41,650 Bueno, pues nada 997 00:41:41,650 --> 00:41:42,769 Si en algún momento es útil 998 00:41:42,769 --> 00:41:44,889 agrupar varias en una misma línea 999 00:41:44,889 --> 00:41:45,929 se agrupan y ya está 1000 00:41:45,929 --> 00:41:48,030 depende de lo que necesite hacer uno 1001 00:41:48,030 --> 00:41:52,000 ¿vale? en este caso entonces 1002 00:41:52,000 --> 00:41:57,489 si yo meto el 7 1003 00:41:57,489 --> 00:41:58,110 por ejemplo 1004 00:41:58,110 --> 00:42:02,780 en el primer caso no me ha mostrado ningún hola 1005 00:42:02,780 --> 00:42:04,679 porque solo contemplaba o 4 o 3 1006 00:42:04,679 --> 00:42:06,059 o 2 o 1, vuelvo a meter 7 1007 00:42:06,059 --> 00:42:08,619 tampoco me muestra nada porque solo contemplaba 4 o 3 1008 00:42:08,619 --> 00:42:10,599 o 2 o 1 y en el tercer caso 1009 00:42:10,599 --> 00:42:11,079 ya sí 1010 00:42:11,079 --> 00:42:15,980 ¿vale? aunque meto el 6 pasa lo mismo 1011 00:42:15,980 --> 00:42:17,219 y 1012 00:42:17,219 --> 00:42:21,570 ¿vale? 1013 00:42:22,849 --> 00:42:24,510 Que meto el 2 1014 00:42:24,510 --> 00:42:25,429 Pues ahora ya 1015 00:42:25,429 --> 00:42:27,630 Pasa ya lo que espero 1016 00:42:27,630 --> 00:42:35,730 Bueno, estas son las 1017 00:42:35,730 --> 00:42:37,170 Particularidades del switch 1018 00:42:37,170 --> 00:42:39,530 Y no tiene más en realidad 1019 00:42:39,530 --> 00:42:41,730 No tiene más interesante 1020 00:42:41,730 --> 00:42:48,760 Está bien, ¿verdad? 1021 00:42:49,760 --> 00:42:50,599 Qué bonito 1022 00:42:50,599 --> 00:43:00,320 Bueno, pues ahora a partir de aquí 1023 00:43:00,320 --> 00:43:01,800 Ya tenemos la vía libre 1024 00:43:01,800 --> 00:43:04,340 Para usarlo en los ejercicios en los que 1025 00:43:04,340 --> 00:43:05,980 Veamos que nos lleva códigos 1026 00:43:05,980 --> 00:43:08,360 Más claros, más legibles y ya está 1027 00:43:08,360 --> 00:43:12,360 Venga, pues a ver 1028 00:43:12,360 --> 00:43:17,000 más ejercicios 1029 00:43:17,000 --> 00:43:18,900 a menos que 1030 00:43:18,900 --> 00:43:22,320 queréis que avancemos 1031 00:43:22,320 --> 00:43:23,599 de Mario 1032 00:43:23,599 --> 00:43:29,239 un respirito, venga, vamos a parar 1033 00:43:29,239 --> 00:43:30,619 vale, vamos a parar 1034 00:43:30,619 --> 00:43:33,599 que es lo que os pasa a los mayores 1035 00:43:33,599 --> 00:43:35,079 que os cansáis, yo lo entiendo 1036 00:43:35,079 --> 00:43:37,480 cuando yo tenga vuestra edad, pues también me cansaré