1 00:00:00,750 --> 00:00:21,129 Vale, para introducir otra forma de hacer decisiones vamos a hacer el 30, por ejemplo, el 30, que sería, a ver, que es una tontería, pero nos permite introducir otra sentencia para hacer los códigos que involucran decisiones un poquito más bonitos, nada más. 2 00:00:21,129 --> 00:00:22,089 Bueno 3 00:00:22,089 --> 00:00:24,629 Sí, pero 4 00:00:24,629 --> 00:00:27,750 Dentro de sentencia de decisión 5 00:00:27,750 --> 00:00:30,109 Tenemos if, el se if 6 00:00:30,109 --> 00:00:31,410 Pero nos falta otra 7 00:00:31,410 --> 00:00:33,750 Forma de hacer decisiones 8 00:00:33,750 --> 00:00:34,609 De escribirlas 9 00:00:34,609 --> 00:00:37,570 Pues venga, vamos a poner 10 00:00:37,570 --> 00:00:41,520 Ejer 30 11 00:00:41,520 --> 00:00:47,179 Esto dice 12 00:00:47,179 --> 00:00:50,179 Pedir una nota y mostrarla 13 00:00:50,179 --> 00:00:52,320 De la siguiente forma, 0, 1, 2 14 00:00:52,320 --> 00:00:53,299 Como si fuera en cadena 15 00:00:53,299 --> 00:00:54,759 O podríamos poner suspenso 16 00:00:54,759 --> 00:00:57,539 Por ahora vamos a ponerla 0, 1, 2 17 00:00:57,539 --> 00:01:02,600 Vale, entonces este programa se convertiría en esto 18 00:01:02,600 --> 00:01:06,260 Bueno, primero vamos a, como tenemos que pedir un numerito 19 00:01:06,260 --> 00:01:10,159 Pues vamos a esto 20 00:01:10,159 --> 00:01:25,530 Ala, pedimos la nota 21 00:01:25,530 --> 00:01:42,819 Venga, introduzca nota numérica 22 00:01:42,819 --> 00:01:46,260 introduzca 23 00:01:46,260 --> 00:01:47,959 nota 24 00:01:47,959 --> 00:01:51,219 entre 0 y 10 25 00:01:51,219 --> 00:01:53,260 a la introduzca 26 00:01:53,260 --> 00:01:54,340 nota entre 0 y 10 27 00:01:54,340 --> 00:01:55,500 ahí tenemos la nota 28 00:01:55,500 --> 00:01:58,540 ahora, ¿qué tiene que hacer el programa? 29 00:01:58,739 --> 00:02:00,780 mostrarme la nota 30 00:02:00,780 --> 00:02:03,019 traducida a cadena para que yo la entienda 31 00:02:03,019 --> 00:02:03,420 mejor 32 00:02:03,420 --> 00:02:06,340 para imprimirla en un boletín, para lo que sea 33 00:02:06,340 --> 00:02:07,319 0, 1, 2 34 00:02:07,319 --> 00:02:09,219 con lo cual, este es un programa 35 00:02:09,219 --> 00:02:10,479 no hay nadie 36 00:02:10,479 --> 00:02:14,759 Este es un programa con un montón de ramas 37 00:02:14,759 --> 00:02:16,520 Porque me puede mostrar 0 38 00:02:16,520 --> 00:02:19,319 O bien 1, o bien 2, o bien 3 39 00:02:19,319 --> 00:02:20,039 Así hasta 10 40 00:02:20,039 --> 00:02:21,759 Este es un programa con un montón de ramas 41 00:02:21,759 --> 00:02:23,699 Luego 42 00:02:23,699 --> 00:02:24,719 Esto 43 00:02:24,719 --> 00:02:27,979 Que optaríamos por un if else if 44 00:02:27,979 --> 00:02:31,159 Porque si lo hacemos con el if else básico 45 00:02:31,159 --> 00:02:32,539 Haríamos algo de este estilo 46 00:02:32,539 --> 00:02:35,740 Si nota igual a 0 47 00:02:35,740 --> 00:02:40,000 Pues entonces 48 00:02:40,000 --> 00:02:42,400 cero 49 00:02:42,400 --> 00:02:47,639 ¿pero qué pasa si la nota no es igual a cero? 50 00:02:48,500 --> 00:02:50,460 pues si la nota no es igual a cero 51 00:02:50,460 --> 00:02:52,439 entonces me voy a preguntar 52 00:02:52,439 --> 00:02:55,379 ¿nota igual a uno? 53 00:02:56,840 --> 00:02:58,199 y pondría aquí 54 00:02:58,199 --> 00:02:59,740 uno 55 00:02:59,740 --> 00:03:04,289 estoy no poniendo llaves 56 00:03:04,289 --> 00:03:06,770 porque dentro del if solo hay una sentencia 57 00:03:06,770 --> 00:03:09,310 y dentro del else solo hay una compleja 58 00:03:09,310 --> 00:03:09,949 que es la if 59 00:03:09,949 --> 00:03:12,289 ¿pero qué pasa si la nota no es uno? 60 00:03:12,289 --> 00:03:14,169 que hay en este else de aquí 61 00:03:14,169 --> 00:03:15,550 dentro de este if 62 00:03:15,550 --> 00:03:17,770 pues no lo sé 63 00:03:17,770 --> 00:03:20,210 vamos a mirar a ver si ahora fuera 64 00:03:20,210 --> 00:03:21,689 2 65 00:03:21,689 --> 00:03:30,460 vale, y hasta aquí está bien la broma 66 00:03:30,460 --> 00:03:32,460 pero es que si tenemos que 67 00:03:32,460 --> 00:03:33,699 seguir considerándonos 68 00:03:33,699 --> 00:03:36,120 ¿y qué pasa si la nota no es 2? 69 00:03:36,439 --> 00:03:37,599 ¿qué pasa si es 3? 70 00:03:38,360 --> 00:03:40,460 pues si yo sigo las reglas de un código 71 00:03:40,460 --> 00:03:42,240 elegible, elegante, todo esto 72 00:03:42,240 --> 00:03:44,500 aquí se me quedan unos anidamientos 73 00:03:44,500 --> 00:03:46,120 tremendos, ¿vale? 74 00:03:46,159 --> 00:03:48,080 por eso hacíamos la sentencia if 75 00:03:48,080 --> 00:03:50,439 ELSEIF, que me permitía compactar esto 76 00:03:50,439 --> 00:03:52,000 cuando hay IF dentro de ELSE. 77 00:03:53,080 --> 00:03:54,439 ¿Vale? No porque 78 00:03:54,439 --> 00:03:56,199 el programa haga algo 79 00:03:56,199 --> 00:03:58,319 distinto. Si la máquina virtual va a hacer 80 00:03:58,319 --> 00:04:00,539 lo mismo. Es otra forma de escribirlo. 81 00:04:01,500 --> 00:04:02,520 Entonces, en nuestro caso, 82 00:04:02,680 --> 00:04:04,439 como rápidamente vemos que nuestro programa 83 00:04:04,439 --> 00:04:06,199 tiene un montón de ramas. O mostrar 84 00:04:06,199 --> 00:04:07,960 cero, o mostrar uno, o mostrar dos, o mostrar tres. 85 00:04:08,560 --> 00:04:10,099 Pues pienso cuál es la condición 86 00:04:10,099 --> 00:04:12,120 para cada uno de ellas, la pienso y lo 87 00:04:12,120 --> 00:04:14,000 planto en un IF, ELSEIF, ELSEIF, ELSEIF. 88 00:04:14,599 --> 00:04:16,360 Lo que explicamos el otro día, ¿no? 89 00:04:16,360 --> 00:04:19,060 pues entonces no voy a seguir aquí hasta el infinito 90 00:04:19,060 --> 00:04:20,740 con el save note igual a 3 91 00:04:20,740 --> 00:04:22,399 porque esto sería muy feo 92 00:04:22,399 --> 00:04:23,819 aunque el programa estaría bien hecho 93 00:04:23,819 --> 00:04:26,160 sería muy feo y digo, a ver 94 00:04:26,160 --> 00:04:27,540 espérate 95 00:04:27,540 --> 00:04:30,180 esto tiene varias opciones, ¿no? 96 00:04:31,040 --> 00:04:32,980 si se cumple la condición 1 97 00:04:32,980 --> 00:04:34,759 hará una cosa 98 00:04:34,759 --> 00:04:36,439 la que sea 99 00:04:36,439 --> 00:04:37,800 pero 100 00:04:37,800 --> 00:04:42,459 si se cumple 101 00:04:42,459 --> 00:04:45,259 la condición 2 102 00:04:45,259 --> 00:04:50,339 vale, si se cumple la condición 2 103 00:04:50,339 --> 00:04:54,199 entonces haces otra cosa 104 00:04:54,199 --> 00:04:58,439 esta era la sintaxis del if, el save 105 00:04:58,439 --> 00:05:00,620 que es lo mismo que hemos escrito antes 106 00:05:00,620 --> 00:05:13,259 y así puedo poner todas las ramas que a mí me den la gana 107 00:05:13,259 --> 00:05:15,959 todas las que yo quiera, cada una asociada a una condición 108 00:05:15,959 --> 00:05:19,980 y entra en esta rama si la condición que se cumple 109 00:05:19,980 --> 00:05:21,500 es la correspondiente a su rama 110 00:05:21,500 --> 00:05:24,439 Podemos acabar con un else 111 00:05:24,439 --> 00:05:26,399 Al cual entrará 112 00:05:26,399 --> 00:05:32,189 Al cual entrará 113 00:05:32,189 --> 00:05:33,829 Si no se cumple nada de los anteriores 114 00:05:33,829 --> 00:05:35,670 Esto era el if, el save 115 00:05:35,670 --> 00:05:38,430 Era la representación de un programa 116 00:05:38,430 --> 00:05:39,410 Con varias ramas 117 00:05:39,410 --> 00:05:41,230 Cada rama asociada a una condición 118 00:05:41,230 --> 00:05:44,370 Solo se va a ejecutar una de ellas 119 00:05:44,370 --> 00:05:47,050 Solo una, la correspondiente a la condición cierta 120 00:05:47,050 --> 00:05:50,430 Si ninguna es cierta, se ejecuta el else 121 00:05:50,430 --> 00:05:53,529 Si hay dos que son ciertas 122 00:05:53,529 --> 00:05:55,730 Y si me decís, oye, y si se cumple esta y esta 123 00:05:55,730 --> 00:05:57,449 La primera que encuentre 124 00:05:57,449 --> 00:05:59,589 Porque esto iba en secuencia 125 00:05:59,589 --> 00:06:01,649 Miro la primera, que se cumple, hago esto 126 00:06:01,649 --> 00:06:02,850 Punto pelota 127 00:06:02,850 --> 00:06:04,470 Me voy, se acabó 128 00:06:04,470 --> 00:06:06,870 Que no se cumple, miro la siguiente 129 00:06:06,870 --> 00:06:10,129 Podría ser que se cumpliera esta y esta 130 00:06:10,129 --> 00:06:12,550 Pero es que a esta no llegaría a mirarla nunca 131 00:06:12,550 --> 00:06:14,149 Porque como ya se ha cumplido esta 132 00:06:14,149 --> 00:06:15,970 Ha entrado aquí y se ha pirado 133 00:06:15,970 --> 00:06:17,430 ¿Vale? 134 00:06:18,170 --> 00:06:19,730 No tienen por qué ser excluyentes 135 00:06:19,730 --> 00:06:22,050 Lo que pasa es que, hombre, este programa 136 00:06:22,050 --> 00:06:24,930 esta estructura tiene sentido cuando tú quieres 137 00:06:24,930 --> 00:06:27,189 condiciones excluyentes 138 00:06:27,189 --> 00:06:28,610 y para cada una de ellas hacer una cosa 139 00:06:28,610 --> 00:06:29,930 bueno pues 140 00:06:29,930 --> 00:06:31,889 esto es exactamente 141 00:06:31,889 --> 00:06:34,470 la estructura de lo que nos están pidiendo 142 00:06:34,470 --> 00:06:37,089 varias posibilidades 0, 1, 2 143 00:06:37,089 --> 00:06:38,790 hasta 10 y en cada una de ellas hago una cosa 144 00:06:38,790 --> 00:06:40,449 es justo lo que me están diciendo 145 00:06:40,449 --> 00:06:42,009 se adapta a esto perfectamente 146 00:06:42,009 --> 00:06:44,850 pues venga se trata de reflejar eso 147 00:06:44,850 --> 00:06:47,470 si nota es igual a 0 148 00:06:47,470 --> 00:06:49,089 pues entonces 149 00:06:49,089 --> 00:06:53,029 Entonces, pon cero. 150 00:06:55,389 --> 00:06:58,370 Y así no vamos a ponerlas todas porque es un montón. 151 00:07:01,800 --> 00:07:09,199 Si nota es igual a uno, pon uno. 152 00:07:09,519 --> 00:07:12,740 Y vamos a poner la última, aunque habría que poner todas. 153 00:07:15,920 --> 00:07:24,899 Si nota es igual a tres, pues pon tres. 154 00:07:28,069 --> 00:07:31,529 Sí, porque es que no las voy a poner todas que me vuelvo loca. 155 00:07:31,709 --> 00:07:32,209 Pero vamos. 156 00:07:33,490 --> 00:07:35,930 Vamos a ver, lo podemos dejar así 157 00:07:35,930 --> 00:07:37,610 Dos 158 00:07:37,610 --> 00:07:41,810 Y si no 159 00:07:41,810 --> 00:07:44,290 Pues podríamos poner nota no válida 160 00:07:44,290 --> 00:07:52,970 Aquí iría en el resto 161 00:07:52,970 --> 00:07:54,689 Del save, ¿vale? Que no los pongo 162 00:07:54,689 --> 00:08:01,670 El save, nota igual a 163 00:08:01,670 --> 00:08:03,290 Tres, dos, ¿vale? 164 00:08:03,350 --> 00:08:05,589 Pues nos queda un programa más legible que si yo 165 00:08:05,589 --> 00:08:07,589 Voy anidando, voy anidando, pero es lo mismo 166 00:08:07,589 --> 00:08:08,209 Hace lo mismo 167 00:08:08,209 --> 00:08:11,649 ¿Vale? Entonces si ejecutamos esto 168 00:08:11,649 --> 00:08:12,050 Pues 169 00:08:12,050 --> 00:08:17,949 Si le pongo el dos, pues me saca el dos 170 00:08:17,949 --> 00:08:21,889 pero si le pongo 171 00:08:21,889 --> 00:08:23,689 el 6, pues nota no válida 172 00:08:23,689 --> 00:08:25,110 porque no tengo esa contemplada 173 00:08:25,110 --> 00:08:26,949 vale 174 00:08:26,949 --> 00:08:37,720 sí que tenía yo aquí cosas abiertas 175 00:08:37,720 --> 00:08:38,519 madre de Dios 176 00:08:38,519 --> 00:08:45,159 vale, bueno 177 00:08:45,159 --> 00:08:46,279 pues 178 00:08:46,279 --> 00:08:49,419 cuando la situación 179 00:08:49,419 --> 00:08:50,679 es exactamente esta 180 00:08:50,679 --> 00:08:53,360 yo identifico que tengo que hacer un programa 181 00:08:53,360 --> 00:08:55,360 que tiene varias 182 00:08:55,360 --> 00:08:56,659 ramas de actuación 183 00:08:56,659 --> 00:08:59,820 y de qué depende que haga una cosa o haga otra 184 00:08:59,820 --> 00:09:01,259 pues si yo identifico que depende 185 00:09:01,259 --> 00:09:02,919 del valor de una variable 186 00:09:02,919 --> 00:09:05,480 entonces puedo poner otra condición 187 00:09:05,480 --> 00:09:07,240 que hace que el código sea más claro 188 00:09:07,240 --> 00:09:08,240 que es el switch case 189 00:09:08,240 --> 00:09:11,399 esta es una genérica, yo aquí puedo poner 190 00:09:11,399 --> 00:09:12,460 cualquier condición 191 00:09:12,460 --> 00:09:15,320 esta en particular, la condición 192 00:09:15,320 --> 00:09:16,879 era que la variable fuera igual a un valor 193 00:09:16,879 --> 00:09:19,799 pero aquí podría haber sido una condición muy compleja 194 00:09:19,799 --> 00:09:21,460 y aquí podría haber sido una muy compleja 195 00:09:21,460 --> 00:09:22,080 y aquí también 196 00:09:22,080 --> 00:09:24,700 pero en el caso concreto 197 00:09:24,700 --> 00:09:27,919 de que estas condiciones 198 00:09:27,919 --> 00:09:29,820 sean que una variable 199 00:09:29,820 --> 00:09:31,120 sea igual a algo 200 00:09:31,120 --> 00:09:33,200 esto lo puedo poner con 201 00:09:33,200 --> 00:09:35,539 otra sintaxis 202 00:09:35,539 --> 00:09:36,980 de la sentencia de decisión 203 00:09:36,980 --> 00:09:43,450 si las condiciones 204 00:09:43,450 --> 00:09:46,149 son todas 205 00:09:46,149 --> 00:09:49,350 que muy mal expresado 206 00:09:49,350 --> 00:09:53,750 que una variable tome 207 00:09:53,750 --> 00:09:54,750 un valor 208 00:09:54,750 --> 00:09:57,049 pues entonces 209 00:09:57,049 --> 00:09:59,870 podemos hacerlo 210 00:09:59,870 --> 00:10:01,950 con esta 211 00:10:01,950 --> 00:10:02,629 sentencia 212 00:10:02,629 --> 00:10:05,049 suite 213 00:10:05,049 --> 00:10:10,149 una sentencia que existe en todos los lenguajes de programación 214 00:10:10,149 --> 00:10:14,070 vale, pues como es la sintaxis 215 00:10:14,070 --> 00:10:14,909 de esta sentencia 216 00:10:14,909 --> 00:10:17,429 primero se pone switch 217 00:10:17,429 --> 00:10:18,769 como no podía ser de otra manera 218 00:10:18,769 --> 00:10:22,110 y entre paréntesis 219 00:10:22,110 --> 00:10:24,210 se pone 220 00:10:24,210 --> 00:10:25,629 la variable 221 00:10:25,629 --> 00:10:28,350 entre paréntesis 222 00:10:28,350 --> 00:10:29,509 la variable que 223 00:10:29,509 --> 00:10:32,049 en función de su valor yo hago una cosa u otra 224 00:10:32,049 --> 00:10:33,990 tiene que ser una única 225 00:10:33,990 --> 00:10:34,490 variable 226 00:10:34,490 --> 00:10:37,570 vale, pues este programa en función 227 00:10:37,570 --> 00:10:40,210 del valor de nota yo hago una cosa o hago otra 228 00:10:40,210 --> 00:10:42,029 pues aquí pongo nota 229 00:10:42,029 --> 00:10:45,370 y ahora aquí distingo 230 00:10:45,370 --> 00:10:48,509 cada una de las posibilidades 231 00:10:48,509 --> 00:10:50,590 que yo contemplo para esa variable 232 00:10:50,590 --> 00:10:54,909 y las distingo cada una en un case 233 00:10:54,909 --> 00:10:58,090 case nota que sea cero 234 00:10:58,090 --> 00:11:01,330 dos puntos y lo que yo quiero que se haga 235 00:11:01,330 --> 00:11:05,610 cuando sea cero, pues mostrar cero 236 00:11:05,610 --> 00:11:08,210 y ya he terminado con esta rama 237 00:11:08,210 --> 00:11:12,360 ¿Qué quiero otra rama? 238 00:11:12,480 --> 00:11:14,019 Pues en el caso de que sea 1 239 00:11:14,019 --> 00:11:18,740 Pues 1 240 00:11:18,740 --> 00:11:23,330 ¿Y qué quiero yo en el caso de que sea 2? 241 00:11:26,129 --> 00:11:27,190 Pues 2 242 00:11:27,190 --> 00:11:31,600 Entonces esta es más bonita 243 00:11:31,600 --> 00:11:33,919 Que un if, el se if, el se if 244 00:11:33,919 --> 00:11:36,179 Cuando las condiciones que mandan 245 00:11:36,179 --> 00:11:38,419 Es que una variable sea igual a un valor 246 00:11:38,419 --> 00:11:41,240 ¿Vale? Aquí de hecho 247 00:11:41,240 --> 00:11:48,559 Por ejemplo voy a poner algunas más 248 00:11:48,559 --> 00:11:50,419 La 3 249 00:11:50,419 --> 00:11:53,649 La 4 250 00:11:53,649 --> 00:11:58,659 3, 4 251 00:11:58,659 --> 00:12:03,450 hay un else 252 00:12:03,450 --> 00:12:04,970 que es 253 00:12:04,970 --> 00:12:07,269 y si no es ninguno de los anteriores 254 00:12:07,269 --> 00:12:09,490 ese else se llama 255 00:12:09,490 --> 00:12:10,049 default 256 00:12:10,049 --> 00:12:17,179 nota no válida 257 00:12:17,179 --> 00:12:22,610 y ahí acabaría el switch, vale 258 00:12:22,610 --> 00:12:25,470 esto ahora tiene un montón de matices que tenemos que incorporar 259 00:12:25,470 --> 00:12:26,730 vale 260 00:12:26,730 --> 00:12:29,289 pero primero 261 00:12:29,289 --> 00:12:30,350 repetimos 262 00:12:30,350 --> 00:12:32,309 recordad que 263 00:12:32,309 --> 00:12:34,889 esta sentencia es 264 00:12:34,889 --> 00:12:37,470 la sentencia que usamos cuando un programa 265 00:12:37,470 --> 00:12:39,970 tiene varias posibilidades 266 00:12:39,970 --> 00:12:41,409 varias ramas de actuación 267 00:12:41,409 --> 00:12:43,590 y de qué depende que haga una rama 268 00:12:43,590 --> 00:12:44,350 o haga otra 269 00:12:44,350 --> 00:12:47,850 del valor que tome una variable 270 00:12:47,850 --> 00:12:49,769 del valor que tome una variable 271 00:12:49,769 --> 00:12:50,990 ese es un caso particular 272 00:12:50,990 --> 00:12:53,889 el if, el save es más general 273 00:12:53,889 --> 00:12:56,190 el if, el save tiene un montón de ramas 274 00:12:56,190 --> 00:12:58,029 pero yo aquí puedo poner las condiciones 275 00:12:58,029 --> 00:12:58,970 que me den la gana 276 00:12:58,970 --> 00:13:02,230 no tiene que ser que una variable tome un valor 277 00:13:02,230 --> 00:13:04,190 la condición que yo quiera 278 00:13:04,190 --> 00:13:07,169 pero el switch case es un caso 279 00:13:07,169 --> 00:13:09,409 particular de programa con varias ramas 280 00:13:09,409 --> 00:13:11,110 donde lo que define 281 00:13:11,110 --> 00:13:12,990 a qué rama me voy es el valor 282 00:13:12,990 --> 00:13:15,169 que tome una única variable 283 00:13:15,169 --> 00:13:16,330 una única variable 284 00:13:16,330 --> 00:13:18,389 si identifico esa situación 285 00:13:18,389 --> 00:13:20,769 pongo un switch case y queda más bonito 286 00:13:20,769 --> 00:13:21,750 y queda más claro 287 00:13:21,750 --> 00:13:25,289 vale, entonces ¿cómo funciona el switch case? 288 00:13:25,350 --> 00:13:26,330 pues tiene un funcionamiento raro 289 00:13:26,330 --> 00:13:29,809 ¿cómo funciona? 290 00:13:31,309 --> 00:13:32,889 la máquina virtual llega aquí 291 00:13:32,889 --> 00:13:33,889 coge esta variable 292 00:13:33,889 --> 00:13:40,149 y empieza, mira su valor y empieza a compararlo 293 00:13:40,149 --> 00:13:41,429 con cada uno de los case. 294 00:13:42,389 --> 00:13:43,509 ¿El valor es cero? 295 00:13:43,629 --> 00:13:44,509 Uy, sí, es cero. 296 00:13:45,110 --> 00:13:46,549 Pues entra y hace lo que hay aquí. 297 00:13:47,450 --> 00:13:49,789 Pero a diferencia del if, el save, no se pira, 298 00:13:50,529 --> 00:13:54,049 sino que a partir de ahí empieza a hacer 299 00:13:54,049 --> 00:13:55,889 todo lo que hay a continuación. 300 00:13:56,690 --> 00:14:02,090 Me da igual que no sea uno o sea dos, me da igual. 301 00:14:02,090 --> 00:14:10,529 Es decir, en cuanto encuentra un valor que coincide con la variable, es como decir, arranca desde aquí y ya coge carrerilla para todo. 302 00:14:12,549 --> 00:14:15,769 Entonces, eso a veces puede que encaje, pero en este caso no. 303 00:14:16,169 --> 00:14:20,629 Si la variable es cero, queremos que muestre cero y que salga, no queremos que haga nada más. 304 00:14:21,330 --> 00:14:26,129 Pues para eso hay que poner una sentencia después, que es la que suele acompañar al switch case. 305 00:14:27,549 --> 00:14:29,610 A ver, ¿por qué estáis tan revolucionados? 306 00:14:32,340 --> 00:14:33,120 ¿Qué es break? 307 00:14:33,460 --> 00:14:35,700 Entonces es lo habitual 308 00:14:35,700 --> 00:14:37,940 Tener que poner break 309 00:14:37,940 --> 00:14:40,100 En cada case cuando acabo 310 00:14:40,100 --> 00:14:40,759 Lo que 311 00:14:40,759 --> 00:14:46,279 Simplemente para que se salga ya 312 00:14:46,279 --> 00:14:47,879 Y no ejecute el resto 313 00:14:47,879 --> 00:14:50,179 En cada uno 314 00:14:50,179 --> 00:15:01,659 Hay que ponerlo en cada uno 315 00:15:01,659 --> 00:15:03,179 Hay que ponerlo en cada uno 316 00:15:03,179 --> 00:15:03,860 Si queremos 317 00:15:03,860 --> 00:15:07,340 Que cuando encuentre el valor que coincide con la variable 318 00:15:07,340 --> 00:15:08,379 Haga eso 319 00:15:08,379 --> 00:15:11,000 Y termine y se vaya del switch case 320 00:15:11,000 --> 00:15:12,159 Y siga por aquí, claro 321 00:15:12,159 --> 00:15:13,919 Si queremos que funcione así 322 00:15:13,919 --> 00:15:15,279 Que es lo habitual 323 00:15:15,279 --> 00:15:17,980 Lo habitual es que queremos que funcione así 324 00:15:17,980 --> 00:15:20,440 Si no ponemos el break 325 00:15:20,440 --> 00:15:22,879 Esto se interpreta de otra manera 326 00:15:22,879 --> 00:15:25,519 Y es que en cuanto encuentra ese valor 327 00:15:25,519 --> 00:15:27,759 Empieza a partir de ahí 328 00:15:27,759 --> 00:15:38,649 Vale, vamos a ejecutar esto 329 00:15:38,649 --> 00:15:40,870 Este if, el save 330 00:15:40,870 --> 00:15:41,809 Que ya sabemos que funciona 331 00:15:41,809 --> 00:15:43,409 Voy a poner en comentarios para no liar 332 00:15:43,409 --> 00:15:45,970 Esto lo voy a poner todo comentado 333 00:15:45,970 --> 00:15:47,889 Todo esto está comentado 334 00:15:47,889 --> 00:15:49,590 Mi programa se ha quedado 335 00:15:49,590 --> 00:15:51,649 ¿Cómo lo he comentado todo a lo bestia? 336 00:15:51,929 --> 00:15:52,789 Control 7 337 00:15:52,789 --> 00:15:56,090 Seleccionáis, control 7 338 00:15:56,090 --> 00:15:57,909 Se comenta todo a lo bestia 339 00:15:57,909 --> 00:16:00,190 Y lo podéis volver a descomentar 340 00:16:00,190 --> 00:16:00,809 De la misma manera 341 00:16:00,809 --> 00:16:07,970 Control 7, descomento 342 00:16:07,970 --> 00:16:10,269 Si lo queréis comentar todo a lo bestia 343 00:16:10,269 --> 00:16:11,710 Control 7, comentáis 344 00:16:11,710 --> 00:16:14,830 Vale, bueno pues nos ha quedado 345 00:16:14,830 --> 00:16:15,190 Esto 346 00:16:15,190 --> 00:16:19,870 El default sería como el ELSE 347 00:16:19,870 --> 00:16:23,990 Si no es ninguno de los anteriores 348 00:16:23,990 --> 00:16:26,110 Entonces vamos a ejecutarlo 349 00:16:26,110 --> 00:16:28,870 Callao 350 00:16:28,870 --> 00:16:34,440 Venga, si yo le pongo el 0, muy bien, 0 351 00:16:34,440 --> 00:16:37,860 Si lo vuelvo a ejecutar y le pongo el 3 352 00:16:37,860 --> 00:16:39,320 Muy bien, 3 353 00:16:39,320 --> 00:16:43,200 Si le pongo el 7, que el 7 no lo tenía contemplado 354 00:16:43,200 --> 00:16:44,580 Nota no válida, vale 355 00:16:44,580 --> 00:16:49,559 Imaginaos que se me ha olvidado poner el break aquí 356 00:16:49,559 --> 00:16:52,080 lo voy a poner ahí en comentarios 357 00:16:52,080 --> 00:16:54,279 si encuentra el 1 358 00:16:54,279 --> 00:16:56,480 va a entrar en el 1 y como no hay un break 359 00:16:56,480 --> 00:16:58,000 va a seguir haciendo lo demás 360 00:16:58,000 --> 00:16:59,740 hasta que se encuentre el siguiente break 361 00:16:59,740 --> 00:17:02,440 imaginaos que se me había ponido este break 362 00:17:02,440 --> 00:17:05,380 pues que que más da 363 00:17:05,380 --> 00:17:08,700 no, pero que lo haga no significa que entra a evaluar 364 00:17:08,700 --> 00:17:09,579 sino que ya 365 00:17:09,579 --> 00:17:11,599 lo hace todo de carrerilla 366 00:17:11,599 --> 00:17:13,400 ya ni mira el valor ni mira nada 367 00:17:13,400 --> 00:17:16,839 ni mira el valor ni mira nada 368 00:17:16,839 --> 00:17:18,380 entonces yo le pongo el 369 00:17:18,380 --> 00:17:19,299 0 370 00:17:19,299 --> 00:17:22,039 espera, es que no era el 0 371 00:17:22,039 --> 00:17:24,319 era el 1, donde se me había olvidado ponerlo 372 00:17:24,319 --> 00:17:24,640 el break 373 00:17:24,640 --> 00:17:27,180 entonces yo le pongo el 1 374 00:17:27,180 --> 00:17:29,900 pues me hace el 1 375 00:17:29,900 --> 00:17:31,960 y me hace el 2 también 376 00:17:31,960 --> 00:17:34,180 porque como no hay un break aquí, ya sigue 377 00:17:34,180 --> 00:17:36,140 sigue hasta que se encuentre un break 378 00:17:36,140 --> 00:17:37,900 hasta que se encuentre un break 379 00:17:37,900 --> 00:17:40,180 claro 380 00:17:40,180 --> 00:17:42,119 desde que entra 381 00:17:42,119 --> 00:17:43,599 porque ha encontrado la variable 382 00:17:43,599 --> 00:17:45,700 que el valor que coincide desde que entra 383 00:17:45,700 --> 00:17:47,940 empieza a hacer ya todas las sentencias 384 00:17:47,940 --> 00:17:49,359 ya ignorando los case. 385 00:17:49,480 --> 00:17:50,660 Los ignora, empieza a hacerlo todo 386 00:17:50,660 --> 00:17:52,160 hasta que se encuentre un break. 387 00:17:53,700 --> 00:17:53,940 ¿Vale? 388 00:17:54,619 --> 00:17:56,940 Entonces, esto se hizo así 389 00:17:56,940 --> 00:18:00,039 antes de que se hiciera cierta incorporación 390 00:18:00,039 --> 00:18:03,160 porque la sentencia switch case 391 00:18:03,160 --> 00:18:04,980 ha tenido actualizaciones 392 00:18:04,980 --> 00:18:06,319 según Java se ha actualizado. 393 00:18:06,440 --> 00:18:06,940 Por ejemplo, 394 00:18:08,259 --> 00:18:10,819 antiguamente no se podía poner ahí 395 00:18:10,819 --> 00:18:11,940 una variable que fuera string 396 00:18:11,940 --> 00:18:13,220 y aquí poder stringar así. 397 00:18:13,440 --> 00:18:14,180 Ahora lo comprobamos. 398 00:18:14,660 --> 00:18:15,259 Pero, por ejemplo, 399 00:18:15,400 --> 00:18:16,579 ¿para qué me puede a mí ser útil 400 00:18:16,579 --> 00:18:17,240 que no haya break? 401 00:18:17,940 --> 00:18:24,099 Pues, imaginad que en lugar de poner 0, 1, 2, queremos poner aprobado, suspenso, notable. 402 00:18:24,819 --> 00:18:26,380 Pues, yo podría jugar de esta manera. 403 00:18:27,140 --> 00:18:28,240 Quito aquí el 0. 404 00:18:29,420 --> 00:18:30,119 Quito aquí el break. 405 00:18:30,500 --> 00:18:31,859 Quiero poner suspenso. 406 00:18:33,039 --> 00:18:34,200 Quito aquí todos los break. 407 00:18:34,819 --> 00:18:36,960 Quiero poner suspenso hasta el 4 incluido. 408 00:18:37,960 --> 00:18:45,220 Pues, entonces, pongo aquí ya, por ejemplo, quito todos estos system out. 409 00:18:45,880 --> 00:18:46,680 Los quito todo. 410 00:18:53,589 --> 00:18:53,950 Perdón. 411 00:18:53,990 --> 00:18:56,130 quito esto así, lo dejo esto así, 412 00:19:09,269 --> 00:19:12,549 y aquí en este x4 ya pongo el siso este, 413 00:19:13,490 --> 00:19:17,069 suspenso, y aquí ya sí que pongo un break. 414 00:19:18,069 --> 00:19:18,970 Entonces, ¿qué va a pasar? 415 00:19:19,930 --> 00:19:23,829 Que tanto si es 0, como si es 1, como si es 2, como si es 3, como si es 4, 416 00:19:24,009 --> 00:19:25,170 lo que va a ejecutar es esto. 417 00:19:25,829 --> 00:19:29,089 Porque si es 0, entra aquí, no hace nada, 418 00:19:29,089 --> 00:19:32,970 pero como no hay un break, se pone de corrido hasta que llega el break, 419 00:19:33,089 --> 00:19:33,990 con lo cual haría esto. 420 00:19:33,990 --> 00:19:36,529 Si es un 2, entra aquí 421 00:19:36,529 --> 00:19:39,289 Y ya se pone a hacerlo todo de corrido 422 00:19:39,289 --> 00:19:40,329 Hasta que se encuentre un break 423 00:19:40,329 --> 00:19:41,609 Que no lo encuentra hasta aquí 424 00:19:41,609 --> 00:19:44,130 Entonces, ahora 425 00:19:44,130 --> 00:19:47,630 Imaginaos el 5 y el 6 426 00:19:47,630 --> 00:19:49,029 Que es aprobado 427 00:19:49,029 --> 00:19:53,029 Es el valor 428 00:19:53,029 --> 00:19:54,349 De la variable 429 00:19:54,349 --> 00:19:55,849 Que si coincide, entra ahí 430 00:19:55,849 --> 00:19:59,789 Este sería bien 431 00:19:59,789 --> 00:20:03,609 Y aquí ya si pondríamos un break 432 00:20:03,609 --> 00:20:04,470 Vamos a poner 433 00:20:04,470 --> 00:20:08,369 Case 7 434 00:20:08,369 --> 00:20:13,329 Y case 8 435 00:20:13,329 --> 00:20:15,970 Este sería notable 436 00:20:15,970 --> 00:20:25,150 Y case 9 437 00:20:25,150 --> 00:20:30,240 Y case 10 438 00:20:30,240 --> 00:20:32,920 Sobresaliente 439 00:20:32,920 --> 00:20:37,579 Vale, sobresaliente 440 00:20:37,579 --> 00:20:39,200 Pues jugar con los break 441 00:20:39,200 --> 00:20:41,160 Nos permite hacer cosas como esta 442 00:20:41,160 --> 00:20:43,200 Por ejemplo 443 00:20:43,200 --> 00:20:45,079 Hay 5 valores diferentes 444 00:20:45,079 --> 00:20:47,700 que yo quiero que salgan por el mismo lado 445 00:20:47,700 --> 00:20:49,980 pues les quito el break 446 00:20:49,980 --> 00:20:50,880 los dejo en blanco 447 00:20:50,880 --> 00:20:52,619 y me da igual por cual entre 448 00:20:52,619 --> 00:20:54,819 porque desde el momento en que entra en 1 449 00:20:54,819 --> 00:20:57,079 porque esta variable nota es 1 450 00:20:57,079 --> 00:20:58,480 o es 2 o es 3 451 00:20:58,480 --> 00:21:00,440 ya empieza a hacer todo de corrido hasta el break 452 00:21:00,440 --> 00:21:02,019 luego me da igual por donde entre 453 00:21:02,019 --> 00:21:03,420 si entra porque es 0 o porque es 1 454 00:21:03,420 --> 00:21:04,740 va a hacer todo de corrido hasta el break 455 00:21:04,740 --> 00:21:05,680 que es hacer suspenso 456 00:21:05,680 --> 00:21:07,140 y ahí ya se va 457 00:21:07,140 --> 00:21:08,440 porque es un break 458 00:21:08,440 --> 00:21:10,900 pero que pasa si es un 5 o un 6 459 00:21:10,900 --> 00:21:12,559 entonces no entra en ninguna de estas 460 00:21:12,559 --> 00:21:13,859 no entra pero aquí si que entra 461 00:21:13,859 --> 00:21:15,319 O aquí sí que entra 462 00:21:15,319 --> 00:21:17,700 Entonces, me da igual que entre aquí 463 00:21:17,700 --> 00:21:19,279 Que entre aquí, hace todo de corrido 464 00:21:19,279 --> 00:21:21,059 Que será el bien 465 00:21:21,059 --> 00:21:22,839 Y aquí ya sale, porque hay un break 466 00:21:22,839 --> 00:21:25,420 Con el 7 y el 8 igual, con el 9 y el 10 igual 467 00:21:25,420 --> 00:21:27,420 Entonces, jugar con los break me permitía 468 00:21:27,420 --> 00:21:29,460 Hacer esto, de ahí venía lo del break 469 00:21:29,460 --> 00:21:31,279 ¿Vale? 470 00:21:32,140 --> 00:21:33,000 ¿Entendido hasta aquí? 471 00:21:33,839 --> 00:21:34,619 Pero claro 472 00:21:34,619 --> 00:21:37,599 Esto era hasta que no sé qué momento 473 00:21:37,599 --> 00:21:39,680 Llegó 474 00:21:39,680 --> 00:21:41,900 Una versión de Java que te permitía 475 00:21:41,900 --> 00:21:43,619 Poner varios valores 476 00:21:43,619 --> 00:21:45,200 en el mismo case separados por coma 477 00:21:45,200 --> 00:21:46,539 que antes no 478 00:21:46,539 --> 00:21:49,319 no se hasta que versión, no fue hace mucho 479 00:21:49,319 --> 00:21:51,559 entonces, antes 480 00:21:51,559 --> 00:21:53,599 este programa se hubiera hecho así 481 00:21:53,599 --> 00:21:55,519 y todavía se podría 482 00:21:55,519 --> 00:21:57,480 encontrar así, y lo podréis encontrar 483 00:21:57,480 --> 00:21:58,200 así en 484 00:21:58,200 --> 00:22:01,480 pero ahora ya no hace falta 485 00:22:01,480 --> 00:22:03,480 hacerlo así, porque ahora 486 00:22:03,480 --> 00:22:05,380 ya podríamos hacer, en el caso de que sea 487 00:22:05,380 --> 00:22:06,920 0, 1 o 2 488 00:22:06,920 --> 00:22:08,859 o 3 o 4 489 00:22:08,859 --> 00:22:11,559 vale, entonces ahora ya hago lo que 490 00:22:11,559 --> 00:22:12,740 sea, verdad 491 00:22:12,740 --> 00:22:19,990 ahora ya las versiones de Java 492 00:22:19,990 --> 00:22:22,029 me permiten completar varios 493 00:22:22,029 --> 00:22:25,579 luego 494 00:22:25,579 --> 00:22:27,500 esto que ha tenido como herencia 495 00:22:27,500 --> 00:22:29,319 que ahora el break lo ponemos siempre 496 00:22:29,319 --> 00:22:31,279 y se ha quedado ahí como sentencia fea 497 00:22:31,279 --> 00:22:33,759 esto es una de las cosillas que 498 00:22:33,759 --> 00:22:35,759 bien heredadas 499 00:22:35,759 --> 00:22:38,200 de las actualizaciones 500 00:22:38,920 --> 00:22:40,140 que se han tenido que ir 501 00:22:40,140 --> 00:22:41,359 compatibilizando con lo anterior 502 00:22:41,359 --> 00:22:43,160 luego 503 00:22:43,160 --> 00:22:45,559 en los años en los que estamos 504 00:22:45,559 --> 00:22:48,180 2026, ¿con qué nos quedamos 505 00:22:48,180 --> 00:22:50,400 del switch case, nos quedamos 506 00:22:50,400 --> 00:22:50,599 ¿qué? 507 00:22:51,619 --> 00:22:52,640 es una 508 00:22:52,640 --> 00:22:56,039 me da igual 509 00:22:56,039 --> 00:22:58,099 me da igual, los espacios 510 00:22:58,099 --> 00:23:00,059 los parsea 511 00:23:00,059 --> 00:23:01,940 el compilador 512 00:23:01,940 --> 00:23:04,420 vale, ahora ya 513 00:23:04,420 --> 00:23:06,420 en la versión del año 2026 514 00:23:06,420 --> 00:23:06,839 de Java 515 00:23:06,839 --> 00:23:09,460 ¿con qué nos quedamos? 516 00:23:09,759 --> 00:23:12,279 nos quedamos con que el switch case es una sentencia 517 00:23:12,279 --> 00:23:13,539 que plantamos ahí 518 00:23:13,539 --> 00:23:15,259 cuando tenemos un programa 519 00:23:15,259 --> 00:23:17,240 que puede hacer varias 520 00:23:17,240 --> 00:23:19,640 cosas, tiene varias posibilidades 521 00:23:19,640 --> 00:23:21,220 y de qué depende 522 00:23:21,220 --> 00:23:22,519 cada una de esas posibilidades 523 00:23:22,519 --> 00:23:24,900 del valor de una única variable 524 00:23:24,900 --> 00:23:27,539 si identificamos eso 525 00:23:27,539 --> 00:23:28,980 switch case, y ahora 526 00:23:28,980 --> 00:23:31,140 ¿cuál es su sintaxis? pues switch 527 00:23:31,140 --> 00:23:32,220 la variable que sea 528 00:23:32,220 --> 00:23:35,259 que puede ser cualquier primitiva o también un string 529 00:23:35,259 --> 00:23:36,359 también un string 530 00:23:36,359 --> 00:23:38,779 y aquí yo voy poniendo en los case 531 00:23:38,779 --> 00:23:39,880 los valores posibles 532 00:23:39,880 --> 00:23:42,819 que para varios valores quiero hacer lo mismo 533 00:23:42,819 --> 00:23:44,579 los pongo separados por comas 534 00:23:44,579 --> 00:23:47,539 y para esos valores entrará en cualquiera 535 00:23:47,539 --> 00:23:48,900 de ellos que tome y hará lo mismo 536 00:23:48,900 --> 00:23:51,240 y ahora en cada 537 00:23:51,240 --> 00:23:53,359 switch 538 00:23:53,359 --> 00:23:54,099 hago un break 539 00:23:54,099 --> 00:23:56,299 en cada case, perdón 540 00:23:56,299 --> 00:23:59,519 hago un break porque si no lo hago 541 00:23:59,519 --> 00:24:02,450 si no lo hago 542 00:24:02,450 --> 00:24:03,930 una vez que entre 543 00:24:03,930 --> 00:24:06,250 va a ir hasta el final 544 00:24:06,250 --> 00:24:10,819 y ese es un efecto que normalmente 545 00:24:10,819 --> 00:24:11,619 no queremos 546 00:24:11,619 --> 00:24:13,799 normalmente no queremos 547 00:24:13,799 --> 00:24:18,559 pero bueno, hay que saber cómo funciona, claro 548 00:24:18,559 --> 00:24:30,630 vale 549 00:24:30,630 --> 00:24:42,519 El valor del case puede ser 550 00:24:42,519 --> 00:24:43,180 Una variable 551 00:24:43,180 --> 00:24:48,640 ¿Te puedes creer que me haces dudar? 552 00:24:48,680 --> 00:24:50,480 Porque normalmente casi nunca se usa 553 00:24:50,480 --> 00:24:52,339 En ese 554 00:24:52,339 --> 00:24:54,579 Con ese 555 00:24:54,579 --> 00:24:55,839 Estándar 556 00:24:55,839 --> 00:25:02,829 No, es que 557 00:25:02,829 --> 00:25:05,549 No, lo tienes que poner 9 558 00:25:05,549 --> 00:25:06,670 No puede ser una variable 559 00:25:06,670 --> 00:25:09,650 ¿Vale? Es que me hacías dudar 560 00:25:09,650 --> 00:25:11,450 Porque claro, en la vida lo había visto 561 00:25:11,450 --> 00:25:13,589 a, bueno, espérate 562 00:25:13,589 --> 00:25:15,349 a ver si n igual a 563 00:25:15,349 --> 00:25:19,650 no, bueno ya, pero a ver 564 00:25:19,650 --> 00:25:21,589 tiene sus usos, sus valores concretos 565 00:25:21,589 --> 00:25:23,650 una variable, una serie 566 00:25:23,650 --> 00:25:25,289 de valores concretos, pues 567 00:25:25,289 --> 00:25:26,970 tiene su mercado 568 00:25:26,970 --> 00:25:28,049 interesante 569 00:25:28,049 --> 00:25:30,230 ¿no le puedes poner del 1 al 4? 570 00:25:32,480 --> 00:25:34,039 ¿ves? tiene que ser un valor constante 571 00:25:34,039 --> 00:25:36,039 perdón 572 00:25:36,039 --> 00:25:38,160 ¿no le puedes poner del 1 al 4? 573 00:25:40,160 --> 00:25:40,599 no 574 00:25:40,599 --> 00:25:44,609 para esas pijerías 575 00:25:44,609 --> 00:25:45,089 Python 576 00:25:45,089 --> 00:25:47,589 ¿Vale? 577 00:25:49,849 --> 00:25:50,829 Pero luego a cambio 578 00:25:50,829 --> 00:25:51,750 Tiene muchos otros problemas 579 00:25:51,750 --> 00:25:54,589 ¿Vale? Pues este programa 580 00:25:54,589 --> 00:25:56,730 De dada un valor numérico 581 00:25:56,730 --> 00:25:58,170 Dada una nota 582 00:25:58,170 --> 00:26:00,690 Ponerla en literal, pues podría ser así 583 00:26:00,690 --> 00:26:02,390 Por ejemplo, no es el 584 00:26:02,390 --> 00:26:04,869 30 en particular, pero bueno, lo hemos aprovechado 585 00:26:04,869 --> 00:26:06,890 ¿Vale? Pues ya todos 586 00:26:06,890 --> 00:26:08,990 Sabemos el switch case y sus 587 00:26:08,990 --> 00:26:10,170 Detalles 588 00:26:10,170 --> 00:26:12,009 Que son los que he dicho, nada más 589 00:26:12,009 --> 00:26:14,349 Claro 590 00:26:14,349 --> 00:26:17,369 Imaginaos, claro, por ejemplo 591 00:26:17,369 --> 00:26:19,890 Si 592 00:26:19,890 --> 00:26:26,470 Voy a cambiar 593 00:26:26,470 --> 00:26:28,589 La 594 00:26:28,589 --> 00:26:31,569 Versión de Java 595 00:26:31,569 --> 00:26:35,880 Java compiler 596 00:26:35,880 --> 00:26:39,079 Por ejemplo 597 00:26:39,079 --> 00:26:56,009 21 598 00:26:56,009 --> 00:26:57,130 La 1.8 599 00:26:57,130 --> 00:27:01,720 Fijaos 600 00:27:01,720 --> 00:27:03,420 En cuanto he bajado 601 00:27:03,420 --> 00:27:05,779 he bajado 602 00:27:05,779 --> 00:27:07,279 a la versión de Java 603 00:27:07,279 --> 00:27:08,900 1.8, que en realidad 604 00:27:08,900 --> 00:27:11,559 es una de las que más se usan 605 00:27:11,559 --> 00:27:12,500 porque es la más estable 606 00:27:12,500 --> 00:27:15,539 pues en cuanto bajo la versión de Java 1.8 607 00:27:15,539 --> 00:27:17,819 esto ya no me deja 608 00:27:17,819 --> 00:27:19,599 hacerlo, me dice, para esa versión 609 00:27:19,599 --> 00:27:21,380 de Java, que es una de las más 610 00:27:21,380 --> 00:27:23,500 utilizadas de hecho, esto 611 00:27:23,500 --> 00:27:25,579 no, porque esto fue una incorporación que he sido posterior 612 00:27:25,579 --> 00:27:27,619 tendríamos que desglosarlo a 0, 1 613 00:27:27,619 --> 00:27:29,180 2, 3, 4, 5 614 00:27:29,180 --> 00:27:34,089 para que lo tengáis ahí presente 615 00:27:34,089 --> 00:27:37,809 Entonces me voy a volver a la versión que estaba 616 00:27:37,809 --> 00:27:54,789 Bueno, pues a ver 617 00:27:54,789 --> 00:27:57,269 ¿Qué otros ejercicios podemos hacer? 618 00:27:57,349 --> 00:27:58,170 ¿Qué otro ejercicio 619 00:27:58,170 --> 00:27:59,829 O 620 00:27:59,829 --> 00:28:03,069 O llama la atención, ¿eh? 621 00:28:06,759 --> 00:28:07,240 Venga 622 00:28:07,240 --> 00:28:12,890 Vamos al 7 a ver que nos sale 623 00:28:12,890 --> 00:28:21,059 Bueno, sí 624 00:28:21,059 --> 00:28:22,740 Pero el último día es hoy 625 00:28:22,740 --> 00:28:24,160 Ah, no, el lunes 626 00:28:24,160 --> 00:28:25,039 ¿Por qué? 627 00:28:27,099 --> 00:28:29,640 el switch, no, por eso no 628 00:28:29,640 --> 00:28:30,900 me viene nada 629 00:28:30,900 --> 00:28:32,579 vale, dime 630 00:28:32,579 --> 00:28:35,619 jolín, con lo char 631 00:28:35,619 --> 00:28:37,920 no, no lo sé, pero vamos 632 00:28:37,920 --> 00:28:40,480 que será lo que estamos haciendo aquí en los ejercicios 633 00:28:40,480 --> 00:28:41,839 si lo hemos repetido 634 00:28:41,839 --> 00:28:42,660 un montón de veces 635 00:28:42,660 --> 00:28:48,079 ejer 7, ah, vale, pero que el ejer 7 ya lo teníamos 636 00:28:48,079 --> 00:28:48,660 pero he hecho 637 00:28:48,660 --> 00:28:52,000 ah, vale 638 00:28:52,000 --> 00:28:53,819 un segundito, a ver 639 00:28:53,819 --> 00:28:56,000 el ejer 7 lo teníamos hecho así 640 00:28:56,000 --> 00:28:58,180 Y tú planteas hacerlo de otra manera 641 00:28:58,180 --> 00:28:59,579 ¿Vale? ¿Qué manera? 642 00:29:02,480 --> 00:29:04,079 ¿Querías una variable que se llama 643 00:29:04,079 --> 00:29:04,759 Número mayor? 644 00:29:05,980 --> 00:29:07,720 Este va a ser nuestro resultado 645 00:29:07,720 --> 00:29:08,700 El máximo 646 00:29:08,700 --> 00:29:11,160 Este va a ser el resultado 647 00:29:11,160 --> 00:29:12,519 Y ahora 648 00:29:12,519 --> 00:29:15,519 Lo declaras desde primeras como número uno 649 00:29:15,519 --> 00:29:19,549 Sí, y vas recorriendo los otros 650 00:29:19,549 --> 00:29:20,529 Max N1 651 00:29:20,529 --> 00:29:21,910 Y ahora 652 00:29:21,910 --> 00:29:23,230 ¿Lo haces? 653 00:29:24,230 --> 00:29:25,910 O lo hacemos con el ternario 654 00:29:25,910 --> 00:29:27,509 Si no, o bueno, venga 655 00:29:27,509 --> 00:29:38,009 con if. Si el número 2 es mayor que el máximo, máximo igual a n2, ¿verdad? Vale. Y ahora 656 00:29:38,009 --> 00:29:48,509 te irías con el tercero. Si n3 es mayor que el máximo, el nuevo máximo igual a n3. ¿Vale? 657 00:29:49,190 --> 00:29:56,130 Entonces, este es otro algoritmo con la ventaja que es generalizable si tenemos un montón 658 00:29:56,130 --> 00:29:57,210 de números, no solo tres. 659 00:29:58,009 --> 00:30:00,049 Porque sería copiar este if un montón 660 00:30:00,049 --> 00:30:00,549 de veces. 661 00:30:02,230 --> 00:30:03,809 ¿Vale? Entonces, 662 00:30:04,670 --> 00:30:06,190 esto 663 00:30:06,190 --> 00:30:08,210 que hemos hecho aquí también lo habéis entendido, ¿no? 664 00:30:08,369 --> 00:30:10,490 Habría que ordenar el del medio también, ¿no? 665 00:30:10,549 --> 00:30:12,329 No, no hace falta. No, no estamos ordenando. 666 00:30:13,130 --> 00:30:13,609 Es decir, 667 00:30:14,210 --> 00:30:16,069 esta es una manera de calcular el máximo 668 00:30:16,069 --> 00:30:17,730 que se orienta en lo siguiente. 669 00:30:17,849 --> 00:30:18,890 Tienes un montón de números. 670 00:30:20,029 --> 00:30:22,390 Tu mente, aunque uno no lo crea, 671 00:30:23,269 --> 00:30:24,529 procesa en secuencia, 672 00:30:24,630 --> 00:30:25,589 no procesa en paralelo. 673 00:30:25,589 --> 00:30:27,769 lo que pasa es que nos parece que es un paralelo 674 00:30:27,769 --> 00:30:30,509 pero cuando tú ves siete números a la vez 675 00:30:30,509 --> 00:30:32,269 de golpe, ¿cuál es el mayor? 676 00:30:32,410 --> 00:30:33,670 tú dices, el doce 677 00:30:33,670 --> 00:30:36,369 pues no lo has visto de golpe 678 00:30:36,369 --> 00:30:38,130 ha sido uno por uno 679 00:30:38,130 --> 00:30:39,890 y has cogido el primero 680 00:30:39,890 --> 00:30:41,630 lo has comparado con otro 681 00:30:41,630 --> 00:30:44,410 has dicho, oye, este primero yo creo que es el mayor 682 00:30:44,410 --> 00:30:46,250 pero de repente ha aparecido este 683 00:30:46,250 --> 00:30:48,329 ah, no, no, no, que este otro es mayor 684 00:30:48,329 --> 00:30:50,089 pues ahora tengo un nuevo mayor 685 00:30:50,089 --> 00:30:51,730 y te vas con el siguiente 686 00:30:51,730 --> 00:30:54,089 el siguiente es más pequeño, paso de él 687 00:30:54,089 --> 00:30:55,250 ah, no, el siguiente es mayor 688 00:30:55,250 --> 00:30:57,089 pues me lo quedo y tengo un nuevo mayor 689 00:30:57,089 --> 00:30:59,230 es el algoritmo que realmente hacemos 690 00:30:59,230 --> 00:31:01,630 nos quedamos con un candidato 691 00:31:01,630 --> 00:31:02,549 primero a mayor 692 00:31:02,549 --> 00:31:05,230 vamos explorando los otros y si hay alguno 693 00:31:05,230 --> 00:31:07,109 que lo supera, ese es el nuevo ganador 694 00:31:07,109 --> 00:31:09,569 y si no lo supera, se va a la basura 695 00:31:09,569 --> 00:31:11,589 pues este es el algoritmo 696 00:31:11,589 --> 00:31:12,809 mi ganador 697 00:31:12,809 --> 00:31:15,250 el primero, a ver si hay alguno que me supere 698 00:31:15,250 --> 00:31:16,910 ¿tú me superas? 699 00:31:17,529 --> 00:31:19,089 sí, eres el nuevo ganador 700 00:31:19,089 --> 00:31:20,009 ya está 701 00:31:20,009 --> 00:31:23,470 tengo un nuevo ganador, sigo con los que me quedan 702 00:31:23,470 --> 00:31:25,390 N3, tú me superas 703 00:31:25,390 --> 00:31:26,430 eres nuevo ganador 704 00:31:26,430 --> 00:31:29,809 y si me hubieran dado más números 705 00:31:29,809 --> 00:31:32,990 pues yo podría hacer esto 706 00:31:32,990 --> 00:31:34,309 un montón de veces 707 00:31:34,309 --> 00:31:40,069 imaginaos que me hubieran dado N3 708 00:31:40,069 --> 00:31:41,730 N4 709 00:31:41,730 --> 00:31:44,170 N5 710 00:31:44,170 --> 00:31:46,430 N6 711 00:31:46,430 --> 00:31:48,230 N1, N2, N3 712 00:31:48,230 --> 00:31:52,490 N4 713 00:31:58,329 --> 00:32:00,170 ¿vale? 714 00:32:02,630 --> 00:32:03,150 silencio 715 00:32:03,150 --> 00:32:05,289 entonces así lo podría fácilmente 716 00:32:05,289 --> 00:32:07,049 generalizar, que me han dado 717 00:32:07,049 --> 00:32:09,089 seis números, ¿cuál es el 718 00:32:09,089 --> 00:32:11,049 máximo? asumo que es 719 00:32:11,049 --> 00:32:12,869 el primero, oye tú 720 00:32:12,869 --> 00:32:14,549 segundo me ganas, pues ahora eres tú 721 00:32:14,549 --> 00:32:17,250 voy contigo, tú me ganas, pues ahora eres tú 722 00:32:17,250 --> 00:32:19,049 ahora voy contigo, tú 723 00:32:19,049 --> 00:32:20,390 me ganas, pues ahora eres tú 724 00:32:20,390 --> 00:32:23,250 este algoritmo es más fácilmente generalizable 725 00:32:23,250 --> 00:32:25,230 que el de 726 00:32:25,230 --> 00:32:26,410 arriba, porque el de arriba 727 00:32:26,410 --> 00:32:29,829 tendríamos varios el save 728 00:32:29,829 --> 00:32:31,670 y cada el save con una condición muy grande 729 00:32:31,670 --> 00:32:34,269 si tengo 6 números 730 00:32:34,269 --> 00:32:35,349 esta condición 731 00:32:35,349 --> 00:32:37,589 serían 732 00:32:37,589 --> 00:32:39,069 5 cláusulas de LAN 733 00:32:39,069 --> 00:32:42,130 sin embargo así queda como más claro 734 00:32:42,130 --> 00:32:43,430 ¿vale? 735 00:32:44,769 --> 00:32:45,950 lo que pasa es que 736 00:32:45,950 --> 00:32:47,650 lo ideal es meter esto en un bucle 737 00:32:47,650 --> 00:32:49,589 y así no tengo que poner tantos saves seguidos 738 00:32:49,589 --> 00:32:51,049 bueno, ya lo meteremos en un bucle 739 00:32:51,049 --> 00:32:53,789 ¡ala! pues venga, nos vamos 740 00:32:53,789 --> 00:32:55,250 pero no me estoy haciendo ni puñetero caso 741 00:32:55,250 --> 00:32:58,509 Estoy muy cansada de que no me hagáis ni caso.