1 00:00:00,300 --> 00:00:14,099 Bueno, seguimos. Pues a ver, pues si uno quisiera seguir compactando esto, pues claro, podría hacerlo. Por ejemplo, aquí tenemos dos ramas que también son iguales, siete y ocho. 2 00:00:14,099 --> 00:00:22,140 Entonces efectivamente uno podría hacer esto, podría hacer esto, ¿vale? 3 00:00:22,600 --> 00:00:35,079 Vamos a poner el 5 y el 6 también como aprobado, para que, vale, estas dos ramas son iguales, pues podría quitarse y hacer esto, ¿verdad? 4 00:00:35,079 --> 00:00:39,340 Entonces, esto lo podéis encontrar mucho, varios keys seguidos. 5 00:00:41,460 --> 00:00:47,679 Entonces, esto significa que estos dos están agrupados y que tanto 5 como 6 hacen lo de abajo. 6 00:00:48,619 --> 00:00:52,920 Esto significa que estos dos están agrupados, que tanto 7 como 8 hacen lo de abajo. 7 00:00:53,740 --> 00:00:55,840 Esto significa que estos dos están agrupados. 8 00:00:56,700 --> 00:00:58,159 El 1, 2, 3, 5, ¿vale? 9 00:00:58,200 --> 00:01:01,880 Podría poner 5, 6 o podría poner esto, es lo mismo. 10 00:01:01,880 --> 00:01:05,180 Pero repito lo que os decía antes 11 00:01:05,180 --> 00:01:08,900 Si vosotros estáis en una empresa que esté con Java 8 12 00:01:08,900 --> 00:01:10,400 Que es la gran mayoría de ellas 13 00:01:10,400 --> 00:01:12,959 Pues la situación que vais a encontrar es esta 14 00:01:12,959 --> 00:01:17,459 Voy a bajar aquí 15 00:01:17,459 --> 00:01:19,980 A ver, bueno, lo voy a mostrar 16 00:01:19,980 --> 00:01:23,359 Para que os vayáis familiarizando 17 00:01:23,359 --> 00:01:28,819 Java, como ya sabéis, tiene sucesivas versiones 18 00:01:28,819 --> 00:01:30,659 Tiene sucesivas versiones 19 00:01:30,659 --> 00:01:34,579 De las cuales un par de ellas fueron las críticas, la 2 y la 8. 20 00:01:35,459 --> 00:01:43,000 A partir de ahí, pues es bueno, porque hay que incorporar cositas para que no parezca que se aburra la gente. 21 00:01:43,700 --> 00:01:45,879 Pero esos detalles que se incorporan es lo de menos. 22 00:01:47,219 --> 00:01:53,280 O sea, no es mejor programador el que conoce la última versión de una sentencia, es que eso da igual. 23 00:01:54,079 --> 00:01:58,379 Lo que importa es saber elaborar bien algoritmos, saber hacer programas. 24 00:01:58,379 --> 00:02:00,680 entonces la 2 y la 8 fueron las más críticas 25 00:02:00,680 --> 00:02:02,359 la 2 obviamente, ya pues claro 26 00:02:02,359 --> 00:02:04,900 la 2 fue crítica porque se incorporaron 27 00:02:04,900 --> 00:02:06,500 las colecciones, que ya entendemos 28 00:02:06,500 --> 00:02:08,680 lo que son, que son fundamentales 29 00:02:08,680 --> 00:02:10,860 las colecciones, y la 8 es la 30 00:02:10,860 --> 00:02:13,099 siguiente crítica porque se incorporó 31 00:02:13,099 --> 00:02:15,039 programación funcional, otra serie de historias 32 00:02:15,039 --> 00:02:16,860 que bueno, que más o menos 33 00:02:16,860 --> 00:02:18,759 un poquito entenderemos, y a partir 34 00:02:18,759 --> 00:02:21,280 de ahí, vale, pues pequeñas incorporaciones 35 00:02:21,280 --> 00:02:22,699 como esta de aquí 36 00:02:22,699 --> 00:02:24,979 entonces, si uno quiere 37 00:02:24,979 --> 00:02:26,659 por ejemplo, imaginaos que vosotros 38 00:02:26,659 --> 00:02:27,840 estáis desarrollando 39 00:02:27,840 --> 00:02:30,840 y sabéis que 40 00:02:30,840 --> 00:02:33,080 donde se va a desplegar vuestra aplicación 41 00:02:33,080 --> 00:02:34,979 y cuando digo desplegar 42 00:02:34,979 --> 00:02:37,099 es donde vuestra aplicación se va a ejecutar 43 00:02:37,099 --> 00:02:39,080 es en ese ordenador 44 00:02:39,080 --> 00:02:40,680 de ahí, que es en el que ya 45 00:02:40,680 --> 00:02:42,900 la gente se va a conectar y va a hacer cosas 46 00:02:42,900 --> 00:02:44,939 tú no desarrollas 47 00:02:44,939 --> 00:02:46,860 obviamente en el ordenador normalmente 48 00:02:46,860 --> 00:02:49,120 donde se van a ejecutar las aplicaciones que te han pedido 49 00:02:49,120 --> 00:02:50,860 desarrollas en tu ordenador 50 00:02:50,860 --> 00:02:52,139 en el que tú haces tus cositas 51 00:02:52,139 --> 00:02:54,800 ahí es donde tú haces tu desarrollo como programador 52 00:02:54,800 --> 00:03:03,860 Cuando esa aplicación ya está terminada y está aprobada y todo eso, esa aplicación ya se despliega para su ejecución en otro ordenador 53 00:03:03,860 --> 00:03:11,819 Bueno, pues cuando tú estás trabajando tienes que conocer los requisitos donde se va a desplegar esa aplicación 54 00:03:11,819 --> 00:03:19,759 Y cuando digo los requisitos es, en este caso si es una aplicación Java, la versión de la máquina virtual que la va a ejecutar 55 00:03:19,759 --> 00:03:27,340 porque tu aplicación tiene que estar compilada con un nivel de JDK 56 00:03:27,340 --> 00:03:32,340 que sea igual o inferior al de la máquina virtual que lo va a ejecutar. 57 00:03:33,340 --> 00:03:35,580 Porque si no, la máquina virtual no va a saber entenderlo. 58 00:03:36,680 --> 00:03:41,539 ¿Vale? O sea, recordad que teníamos dos conceptos distintos. 59 00:03:41,539 --> 00:03:44,740 No os olvidéis de todas estas cosas, de esta nomenclatura, de todo. 60 00:03:44,819 --> 00:03:48,000 No os olvidéis, tenéis que saber de lo que estáis trabajando. 61 00:03:48,000 --> 00:04:00,900 Recordad que una cosa es el JDK, el Java Development Kit 62 00:04:00,900 --> 00:04:05,680 Que es el kit de desarrollo Java, que es todo ese conjunto de herramientas, de comandos 63 00:04:05,680 --> 00:04:08,060 Que nos permiten desarrollar para Java 64 00:04:08,060 --> 00:04:12,400 Entre ellos compilar, lo más importante, ese es el JDK 65 00:04:12,400 --> 00:04:17,519 Lo que no se descarga y usa por ejemplo el Java C desde comandos 66 00:04:17,519 --> 00:04:20,480 Si eso es incómodo pues usa un entorno de desarrollo 67 00:04:20,480 --> 00:04:22,839 Pero el entorno de desarrollo usa internamente el JDK 68 00:04:22,839 --> 00:04:24,319 Claro, una cosa es el JDK 69 00:04:24,319 --> 00:04:26,060 Esto es para desarrollar 70 00:04:26,060 --> 00:04:27,579 Para hacer programación Java 71 00:04:27,579 --> 00:04:31,279 Luego una vez que la aplicación ya está hecha 72 00:04:31,279 --> 00:04:33,459 Compilada 73 00:04:33,459 --> 00:04:35,240 Ya tenemos los .class 74 00:04:35,240 --> 00:04:37,560 Ahora ya eso se puede ejecutar 75 00:04:37,560 --> 00:04:38,959 En cualquier ordenador 76 00:04:38,959 --> 00:04:39,839 En cualquiera 77 00:04:39,839 --> 00:04:43,699 Bueno, pues quien lo ejecuta 78 00:04:43,699 --> 00:04:46,259 Es lo que llamamos la máquina virtual de Java 79 00:04:46,259 --> 00:04:47,180 Que es esta 80 00:04:47,180 --> 00:04:49,379 La Java Virtual Machine 81 00:04:49,379 --> 00:04:51,120 vale 82 00:04:51,120 --> 00:04:53,720 entonces la JDK es el conjunto 83 00:04:53,720 --> 00:04:55,759 de herramientas para desarrollar 84 00:04:55,759 --> 00:04:57,660 entre las cuales 85 00:04:57,660 --> 00:04:59,420 la más importante es el compilador 86 00:04:59,420 --> 00:05:01,439 para pasar del punto Java al punto Class 87 00:05:01,439 --> 00:05:03,600 y luego ya la máquina virtual 88 00:05:03,600 --> 00:05:05,740 esto ya si es lo que está en todos los ordenadores 89 00:05:05,740 --> 00:05:07,500 que sirve para ejecutar un programa 90 00:05:07,500 --> 00:05:08,600 que ya está compilado en Java 91 00:05:08,600 --> 00:05:11,839 ya está compilado y yo lo ejecuto, vale, esta es la máquina virtual 92 00:05:11,839 --> 00:05:13,879 y esta si está en todos los equipos 93 00:05:13,879 --> 00:05:15,259 que ya han ejecutado aplicaciones Java 94 00:05:15,259 --> 00:05:17,199 la JDK solo estará 95 00:05:17,199 --> 00:05:19,639 en los que quieran hacer desarrollo Java 96 00:05:19,639 --> 00:05:21,000 vale 97 00:05:21,000 --> 00:05:23,259 vale 98 00:05:23,259 --> 00:05:24,019 entonces 99 00:05:24,019 --> 00:05:27,600 la JDK y la JVM 100 00:05:27,600 --> 00:05:29,620 pues van avanzando 101 00:05:29,620 --> 00:05:31,639 van saliendo versiones, etc 102 00:05:31,639 --> 00:05:33,680 bueno pues 103 00:05:33,680 --> 00:05:35,720 donde se vaya 104 00:05:35,720 --> 00:05:37,040 a ejecutar nuestra aplicación 105 00:05:37,040 --> 00:05:39,339 habrá una máquina virtual 106 00:05:39,339 --> 00:05:40,540 que tendrá una versión 107 00:05:40,540 --> 00:05:43,740 la 1.8 en la gramaría de los casos 108 00:05:43,740 --> 00:05:45,220 o la versión que tenga 109 00:05:45,220 --> 00:05:46,980 1.9 o 1.10 la que tenga 110 00:05:46,980 --> 00:05:51,699 pues esta máquina virtual solo va a poder ejecutar aplicaciones 111 00:05:51,699 --> 00:05:55,279 que se hayan desarrollado con versiones de JDK 112 00:05:55,279 --> 00:06:00,699 iguales o inferiores a la que tiene la propia máquina virtual 113 00:06:00,699 --> 00:06:04,720 si la máquina virtual es la 8, la 1.8 114 00:06:04,720 --> 00:06:09,839 yo no puedo darle para ejecutar una aplicación 115 00:06:09,839 --> 00:06:12,199 que he desarrollado en la versión 20 116 00:06:12,199 --> 00:06:15,180 por ejemplo, como la que estamos haciendo aquí nosotros 117 00:06:15,180 --> 00:06:17,379 Hemos descargado la última que había, la jdk20 118 00:06:17,379 --> 00:06:19,339 No sé si es la última, la 20 o ya la 21 119 00:06:19,339 --> 00:06:22,000 La 21, es la que hemos descargado 120 00:06:22,000 --> 00:06:23,139 Y es la que estamos utilizando 121 00:06:23,139 --> 00:06:26,120 Claro, y dentro de donde está la 22 122 00:06:26,120 --> 00:06:27,519 Pero da igual 123 00:06:27,519 --> 00:06:29,139 Si es que da lo mismo, da exactamente igual 124 00:06:29,139 --> 00:06:30,639 Porque no se usa ninguna de ellas 125 00:06:30,639 --> 00:06:31,459 No se usa ninguna 126 00:06:31,459 --> 00:06:33,240 Entonces 127 00:06:33,240 --> 00:06:36,980 ¿Qué ocurre? 128 00:06:37,040 --> 00:06:38,980 Que si yo no cambio el nivel de compilación 129 00:06:38,980 --> 00:06:40,600 Y no lo bajo 130 00:06:40,600 --> 00:06:43,300 Al de la máquina virtual que se vaya a ejecutar 131 00:06:43,300 --> 00:06:44,300 Si no lo bajo 132 00:06:44,300 --> 00:06:46,819 Pues la máquina virtual no lo va a entender 133 00:06:46,819 --> 00:06:47,920 No lo va a entender 134 00:06:47,920 --> 00:06:50,980 ¿Vale? 135 00:06:51,980 --> 00:06:53,019 Vamos a 136 00:06:53,019 --> 00:06:58,209 Vamos a verlo 137 00:06:58,209 --> 00:07:00,430 Que es interesante 138 00:07:00,430 --> 00:07:01,790 A ver 139 00:07:01,790 --> 00:07:08,269 Vamos a 140 00:07:08,269 --> 00:07:10,449 Lo que pasa es que aquí en este ordenador 141 00:07:10,449 --> 00:07:12,790 Tengo en el pendrive una máquina virtual más baja 142 00:07:12,790 --> 00:07:14,649 Creo, la JR8 143 00:07:14,649 --> 00:07:16,310 Si podemos descargarlo rápidamente 144 00:07:16,310 --> 00:07:18,689 Porque aquí ahora mismo 145 00:07:18,689 --> 00:07:20,370 Vamos a ver que máquinas virtuales tenemos 146 00:07:20,370 --> 00:07:24,089 las máquinas virtuales 147 00:07:24,089 --> 00:07:25,230 están en la carpeta de Java 148 00:07:25,230 --> 00:07:33,449 lo único que tengo en la carpeta de Java 149 00:07:33,449 --> 00:07:34,250 aquí 150 00:07:34,250 --> 00:07:42,220 es 151 00:07:42,220 --> 00:07:44,740 esta, ¿vale? 152 00:07:44,779 --> 00:07:46,480 porque recordad que la JDK 153 00:07:46,480 --> 00:07:49,040 tiene dentro también una máquina virtual 154 00:07:49,040 --> 00:07:50,300 tiene dentro también una máquina virtual 155 00:07:50,300 --> 00:07:53,040 entonces estamos ejecutando con esta 156 00:07:53,040 --> 00:07:55,160 ¿vale? por eso nuestras aplicaciones 157 00:07:55,160 --> 00:07:57,259 las entiende la máquina virtual con la que ejecutamos 158 00:07:57,259 --> 00:07:58,259 porque es la misma versión 159 00:07:58,259 --> 00:07:59,920 ¿vale? 160 00:07:59,920 --> 00:08:04,639 A ver si en archivos de programa 8086 tenemos otra 161 00:08:04,639 --> 00:08:07,939 Java no es la única que tenemos 162 00:08:07,939 --> 00:08:17,660 Vamos a ver si nos podemos descargar rápidamente 163 00:08:17,660 --> 00:08:26,569 La JR8 164 00:08:26,569 --> 00:08:30,990 Que es la que más, es una de las que más 165 00:08:30,990 --> 00:08:59,899 Java para Windows, por ejemplo 166 00:08:59,899 --> 00:09:04,200 vale, esta página 167 00:09:04,200 --> 00:09:05,960 te descarga la 168 00:09:05,960 --> 00:09:07,320 máquina virtual 169 00:09:07,320 --> 00:09:12,529 a ver si me la descarga rapidito 170 00:09:13,529 --> 00:09:18,889 veis, pone Java Runtime Environment 171 00:09:18,889 --> 00:09:20,029 no es la JDK 172 00:09:20,029 --> 00:09:25,850 instalarla 173 00:09:25,850 --> 00:09:27,870 lo único que va a hacer va a ser descomprimir la carpeta 174 00:09:27,870 --> 00:09:28,370 y el zip 175 00:09:28,370 --> 00:09:37,470 pues vamos a ver si ya la ha instalado 176 00:09:37,470 --> 00:09:39,850 vamos a meternos en 177 00:09:39,850 --> 00:09:42,690 archivos de programa 178 00:09:42,690 --> 00:09:43,509 java 179 00:09:43,509 --> 00:09:57,509 vale, aquí la tengo 180 00:09:57,509 --> 00:09:58,149 vale 181 00:09:58,149 --> 00:10:05,460 vale, esta es 182 00:10:05,460 --> 00:10:10,120 la máquina virtual 1.8 183 00:10:10,120 --> 00:10:11,659 vale, que es una 184 00:10:11,659 --> 00:10:13,980 que es la que vais a encontrar prácticamente 185 00:10:13,980 --> 00:10:16,580 en cualquier lado 186 00:10:16,580 --> 00:10:18,080 la máquina virtual 1.8 187 00:10:18,080 --> 00:10:19,899 la más estable, de las que son 188 00:10:19,899 --> 00:10:21,299 máquinas virtuales exclusivamente 189 00:10:21,299 --> 00:10:24,000 vale, pues la máquina virtual 8 190 00:10:24,000 --> 00:10:27,159 si yo la uso para ejecutar 191 00:10:27,159 --> 00:10:29,080 mis aplicaciones, voy a tener 192 00:10:29,080 --> 00:10:30,919 que compilarlas a un nivel 193 00:10:30,919 --> 00:10:32,740 igual o inferior a 8 194 00:10:32,740 --> 00:10:33,580 que siempre será el 8 195 00:10:33,580 --> 00:10:35,980 vale, pues venga, vamos a 196 00:10:35,980 --> 00:10:38,519 configurar nuestro Eclipse 197 00:10:38,519 --> 00:10:40,940 para darle la opción 198 00:10:40,940 --> 00:10:43,019 de ejecutar con esta otra máquina 199 00:10:43,019 --> 00:10:45,039 virtual también, ahora mismo está ejecutando 200 00:10:45,039 --> 00:10:46,740 solo con la que está dentro de la 201 00:10:46,740 --> 00:10:49,059 JDK 20, que la JDK incluye una máquina 202 00:10:49,059 --> 00:10:50,940 virtual, vale, vamos a 203 00:10:50,940 --> 00:10:53,120 darle la opción de trabajar con otra también 204 00:10:53,120 --> 00:11:27,100 con otra máquina virtual, con la JR8, porque yo puedo querer simular la situación que va a encontrar mi aplicación cuando esté en un servidor, que es trabajar con la JR8, pues venga, vamos a, vale, a ver, venga, pues ya quito esto, vale, pues venga, por ejemplo, este proyecto de aquí, ejemplo sentencia selectiva, 205 00:11:27,100 --> 00:11:30,120 vale, si le dais al botón derecho 206 00:11:30,120 --> 00:11:31,500 si le dais al botón derecho 207 00:11:31,500 --> 00:11:35,700 y os vais a propiedades 208 00:11:35,700 --> 00:11:38,200 vais a ver muchas cosas 209 00:11:38,200 --> 00:11:39,659 relacionadas con ese proyecto 210 00:11:39,659 --> 00:11:41,559 nos vamos a propiedades 211 00:11:41,559 --> 00:11:45,019 vale, pues aquí en propiedades 212 00:11:45,019 --> 00:11:46,139 vemos un montón de cositas 213 00:11:46,139 --> 00:11:47,919 que ahora mismo nos pueden sonar a chino todas 214 00:11:47,919 --> 00:11:51,580 vamos a pinchar en java buildpad 215 00:11:51,580 --> 00:11:54,299 en java buildpad 216 00:11:54,299 --> 00:11:57,580 uno pincha, se va a librerías 217 00:11:57,580 --> 00:11:59,519 y te dice 218 00:11:59,519 --> 00:12:01,779 con qué máquina virtual 219 00:12:01,779 --> 00:12:03,840 va a ejecutar el Eclipse 220 00:12:03,840 --> 00:12:04,960 ese proyecto 221 00:12:04,960 --> 00:12:07,019 nos está diciendo, bueno 222 00:12:07,019 --> 00:12:10,120 con la máquina virtual que está dentro del JDK20 223 00:12:10,120 --> 00:12:11,700 es lo que nos está diciendo 224 00:12:11,700 --> 00:12:14,100 vale 225 00:12:14,100 --> 00:12:24,299 vamos a añadirle 226 00:12:24,299 --> 00:12:26,240 la opción de 227 00:12:26,240 --> 00:12:29,059 compilar con otra máquina virtual 228 00:12:29,059 --> 00:12:30,639 con la lupa, es que me pierdo 229 00:12:30,639 --> 00:12:37,850 A ver, pero voy a quitar la lupa 230 00:12:37,850 --> 00:12:39,409 Porque es que si no 231 00:12:39,409 --> 00:12:41,009 Es imposible ver algo aquí 232 00:12:41,009 --> 00:12:48,340 Pues venga 233 00:12:48,340 --> 00:12:50,240 Vámonos otra vez donde estábamos 234 00:12:50,240 --> 00:12:51,200 Propiedades 235 00:12:51,200 --> 00:12:54,440 Java build path, vale 236 00:12:54,440 --> 00:12:56,379 Librerías, librerías 237 00:12:56,379 --> 00:12:59,440 Vale, pinchamos module path o class path 238 00:12:59,440 --> 00:13:01,379 Ahora mismo no entendemos lo que es 239 00:13:01,379 --> 00:13:02,980 Da igual, pinchamos class path y le decimos 240 00:13:02,980 --> 00:13:04,879 Venga, añade una librería 241 00:13:04,879 --> 00:13:07,120 Botón derecho, añade librería 242 00:13:07,120 --> 00:13:08,940 Vale, esto no hace falta que lo hagáis vosotros 243 00:13:08,940 --> 00:13:10,580 Lo que quiero es que veáis el error que se daría 244 00:13:10,580 --> 00:13:13,639 Venga, librería de JRE 245 00:13:13,639 --> 00:13:15,320 Allá arriba está escrito 246 00:13:15,320 --> 00:13:16,500 Aunque no lo veáis 247 00:13:16,500 --> 00:13:22,289 Está escrito 248 00:13:22,289 --> 00:13:24,690 Añade una JRE 249 00:13:24,690 --> 00:13:25,610 Venga 250 00:13:25,610 --> 00:13:28,110 Quiero librería 251 00:13:28,110 --> 00:13:30,350 De tipo Java Runtime Environment 252 00:13:30,350 --> 00:13:31,990 O máquina virtual de Java 253 00:13:31,990 --> 00:13:34,110 Pues venga, la selecciono 254 00:13:34,110 --> 00:13:34,549 Next 255 00:13:34,549 --> 00:13:36,929 Me dice, vamos a ver 256 00:13:36,929 --> 00:13:38,730 Te dice, tienes esta 257 00:13:38,730 --> 00:13:41,809 alternativas 258 00:13:41,809 --> 00:13:43,110 ninguna 259 00:13:43,110 --> 00:13:44,730 no tienes ninguna alternativa 260 00:13:44,730 --> 00:13:45,710 es la unidad que tienes 261 00:13:45,710 --> 00:13:49,149 vamos a ponerle una adicional 262 00:13:49,149 --> 00:13:51,350 la que yo acabo de instalar en mi ordenador 263 00:13:51,350 --> 00:13:52,350 la JR8 264 00:13:52,350 --> 00:13:54,610 pues pincho en este botoncito 265 00:13:54,610 --> 00:13:56,590 a ver cual está instalada 266 00:13:56,590 --> 00:13:59,009 ahora mismo en la JDK20 267 00:13:59,009 --> 00:14:01,090 quieres habilitarte la opción 268 00:14:01,090 --> 00:14:02,409 de compilar con otra 269 00:14:02,409 --> 00:14:04,870 venga si, pues añades 270 00:14:04,870 --> 00:14:07,509 añadimos, venga vamos a añadir 271 00:14:07,509 --> 00:14:08,549 a una máquina virtual 272 00:14:08,549 --> 00:14:11,350 next 273 00:14:11,350 --> 00:14:13,529 ¿dónde va a estar? 274 00:14:13,629 --> 00:14:14,850 ¿dónde está esa máquina virtual? 275 00:14:16,190 --> 00:14:18,049 pues buscamos en el 276 00:14:18,049 --> 00:14:18,490 ahí 277 00:14:18,490 --> 00:14:26,809 ¿dónde está esa máquina virtual? vamos a buscar 278 00:14:26,809 --> 00:14:28,190 donde me la ha instalado 279 00:14:28,190 --> 00:14:31,070 en C, archivos de programa, Java 280 00:14:31,070 --> 00:14:33,350 ahí estaba, JR18 281 00:14:33,350 --> 00:14:35,210 seleccionada 282 00:14:35,210 --> 00:14:36,950 vale, ya la tenemos, ahí seleccionada 283 00:14:36,950 --> 00:14:37,289 finish 284 00:14:37,289 --> 00:14:40,509 vale, pues ahora ya 285 00:14:40,509 --> 00:14:46,620 Me ha aparecido 286 00:14:46,620 --> 00:14:48,000 En esta ventanita 287 00:14:48,000 --> 00:14:50,200 Que ahora ya tengo dos alternativas 288 00:14:50,200 --> 00:14:51,320 Con las que puedo elegir 289 00:14:51,320 --> 00:14:54,419 Para ejecutar mis aplicaciones desde Eclipse 290 00:14:54,419 --> 00:14:56,120 Esta JDK20 291 00:14:56,120 --> 00:14:57,899 Que es la JR que me viene 292 00:14:57,899 --> 00:14:59,820 Con la JDK20 que yo he descargado 293 00:14:59,820 --> 00:15:01,500 Esta JDK20 294 00:15:01,500 --> 00:15:02,759 Y esta JRE 295 00:15:02,759 --> 00:15:06,200 Que es la última máquina virtual 296 00:15:06,200 --> 00:15:07,299 Estable 297 00:15:07,299 --> 00:15:09,940 Vale, tú ahora ya puedes elegir 298 00:15:09,940 --> 00:15:11,080 Ya tienes las dos instaladas 299 00:15:11,080 --> 00:15:12,860 Pues venga, aplicamos 300 00:15:12,860 --> 00:15:14,860 Apply 301 00:15:14,860 --> 00:15:18,259 Ah, y apply and close 302 00:15:18,259 --> 00:15:18,820 Es que tengo 303 00:15:18,820 --> 00:15:20,340 Sí, aplicar, apply and close 304 00:15:20,340 --> 00:15:23,500 No, no, no, es que no quiero marcarla 305 00:15:23,500 --> 00:15:24,779 Lo que quiero es habilitar la opción 306 00:15:24,779 --> 00:15:26,320 Y ahora ya la selecciono desde otro sitio 307 00:15:26,320 --> 00:15:27,600 Pero voy a cerrar esto 308 00:15:27,600 --> 00:15:30,120 Bueno, pues ahora ya 309 00:15:30,120 --> 00:15:31,820 Si pincho lo de alternativas 310 00:15:31,820 --> 00:15:33,779 Ya en el desplegable ya me salen dos 311 00:15:33,779 --> 00:15:35,120 Que es lo que yo quería 312 00:15:35,120 --> 00:15:36,740 Ahora en este desplegable 313 00:15:36,740 --> 00:15:45,720 en este desplegable de aquí 314 00:15:45,720 --> 00:15:47,700 ya me salen dos máquinas virtuales 315 00:15:47,700 --> 00:15:49,779 ya puedo elegir 316 00:15:49,779 --> 00:15:51,679 en cada proyecto que yo haga 317 00:15:51,679 --> 00:15:53,820 puedo elegir con qué máquina virtual 318 00:15:53,820 --> 00:15:55,019 quiero que lo ejecute el eclipse 319 00:15:55,019 --> 00:15:57,700 entonces yo ahí se supone 320 00:15:57,700 --> 00:15:59,259 si estoy ya trabajando en un 321 00:15:59,259 --> 00:16:01,700 entorno real, tendré 322 00:16:01,700 --> 00:16:03,440 ahí habilitadas 323 00:16:03,440 --> 00:16:05,240 todas las máquinas virtuales 324 00:16:05,240 --> 00:16:07,539 en las que puede que mis aplicaciones 325 00:16:07,539 --> 00:16:09,440 se desplieguen en los diferentes servidores 326 00:16:09,440 --> 00:16:11,360 con los que yo trabaje, ahí tendré 327 00:16:11,360 --> 00:16:12,279 habilitadas todas 328 00:16:12,279 --> 00:16:14,840 entonces yo cada proyecto 329 00:16:14,840 --> 00:16:17,559 seleccionaré para mis pruebas en Eclipse 330 00:16:17,559 --> 00:16:19,100 seleccionaré una máquina virtual 331 00:16:19,100 --> 00:16:21,399 que sea igual a la del 332 00:16:21,399 --> 00:16:23,500 servidor donde se va a ejecutar luego mi aplicación 333 00:16:23,500 --> 00:16:24,340 cuando ya esté hecha 334 00:16:24,340 --> 00:16:27,539 vamos a suponer que ahora este proyecto en particular 335 00:16:27,539 --> 00:16:28,940 que estamos haciendo del case, este proyecto 336 00:16:28,940 --> 00:16:30,960 yo quiero que mi Eclipse 337 00:16:30,960 --> 00:16:33,840 lo ejecute con la JR1-8 338 00:16:33,840 --> 00:16:36,100 quiero que lo ejecute con la JR1-8 339 00:16:36,100 --> 00:16:37,480 porque en el servidor 340 00:16:37,480 --> 00:16:38,580 en el que luego se va a desplegar 341 00:16:38,580 --> 00:16:40,940 Tiene esta máquina virtual para ejecutarla 342 00:16:40,940 --> 00:16:42,679 Pues marco aquí JR18 343 00:16:42,679 --> 00:16:44,779 Y ya está, y le doy a finish 344 00:16:44,779 --> 00:16:46,960 Y ahora veis 345 00:16:46,960 --> 00:16:48,259 Aquí en el proyecto este 346 00:16:48,259 --> 00:17:01,710 Vale 347 00:17:01,710 --> 00:17:03,789 En el, no veía esta ventanita 348 00:17:03,789 --> 00:17:05,750 Vale, entonces 349 00:17:05,750 --> 00:17:11,299 Vuelvo a esta ventana 350 00:17:11,299 --> 00:17:13,440 Veis, esta es con la que yo la quiero 351 00:17:13,440 --> 00:17:15,539 Ejecutar con la jeta JR8 352 00:17:15,539 --> 00:17:17,400 Y esta ya la quito 353 00:17:17,400 --> 00:17:19,079 Esto no quiero que lo hagáis en vuestros ordenadores 354 00:17:19,079 --> 00:17:21,579 Porque lo que quiero es que entendáis 355 00:17:21,579 --> 00:17:22,759 Esa situación 356 00:17:22,759 --> 00:17:24,440 que se da y lo que 357 00:17:24,440 --> 00:17:25,720 las implicaciones que tiene 358 00:17:25,720 --> 00:17:28,900 bueno, pues ya está, entonces ahora yo ya le doy 359 00:17:28,900 --> 00:17:30,259 a la apply and close este 360 00:17:30,259 --> 00:17:32,680 y si me vengo aquí a mi proyecto, este de aquí 361 00:17:32,680 --> 00:17:34,160 ¿veis? 362 00:17:35,160 --> 00:17:35,640 esto 363 00:17:35,640 --> 00:17:39,059 ya ha cambiado, ¿veis este proyecto de abajo? 364 00:17:40,019 --> 00:17:40,779 pone aquí 365 00:17:40,779 --> 00:17:42,799 se va a ejecutar con la 366 00:17:42,799 --> 00:17:44,660 máquina virtual 20, ¿vale? 367 00:17:45,119 --> 00:17:46,160 sin embargo este de arriba 368 00:17:46,160 --> 00:17:48,539 yo he cambiado la configuración 369 00:17:48,539 --> 00:17:50,700 para que se ejecute con la JR18 370 00:17:50,700 --> 00:17:52,480 entonces cada proyecto 371 00:17:52,480 --> 00:17:54,160 yo puedo elegir con qué máquina virtual 372 00:17:54,160 --> 00:17:56,700 quiero que el eclipse simule su ejecución 373 00:17:56,700 --> 00:17:58,480 ¿vale? 374 00:17:58,539 --> 00:18:00,359 puedo elegirlo, las diferencias 375 00:18:00,359 --> 00:18:01,839 entre unas y otras son las versiones 376 00:18:01,839 --> 00:18:04,279 bueno, pues entonces, esta 377 00:18:04,279 --> 00:18:06,640 yo puedo creer que se ejecute con la 8, repito 378 00:18:06,640 --> 00:18:08,259 porque lo necesito 379 00:18:08,259 --> 00:18:10,279 porque el sitio del que va es la 8 y quiero simular 380 00:18:10,279 --> 00:18:12,880 las pruebas reales, tal y como va a funcionar 381 00:18:12,880 --> 00:18:13,980 pues ya lo he cambiado 382 00:18:13,980 --> 00:18:16,480 el proceso de cómo agregar una máquina virtual 383 00:18:16,480 --> 00:18:18,339 a mi eclipse para poder elegir unas y otras 384 00:18:18,339 --> 00:18:19,900 ahora mismo nos da un poco igual 385 00:18:19,900 --> 00:18:23,420 Porque no es algo que necesitéis hacer 386 00:18:23,420 --> 00:18:24,599 Pero tenéis que entender 387 00:18:24,599 --> 00:18:26,759 Las implicaciones de esto 388 00:18:26,759 --> 00:18:27,920 Bueno, pues este en particular 389 00:18:27,920 --> 00:18:29,940 Se va a ejecutar con la JR1 390 00:18:29,940 --> 00:18:30,819 Ya lo hemos cambiado 391 00:18:30,819 --> 00:18:34,000 Vale, pues venga, cerramos aquí la lupa 392 00:18:34,000 --> 00:18:35,559 Ya para que se vea 393 00:18:35,559 --> 00:18:38,200 Vale, bueno, pues este era mi proyecto 394 00:18:38,200 --> 00:18:39,740 Este es mi proyecto 395 00:18:39,740 --> 00:18:40,859 Que dio sentencia a IVE 396 00:18:40,859 --> 00:18:43,599 Voy a cerrar esto 397 00:18:43,599 --> 00:18:44,740 Que tengo aquí tanto abierto 398 00:18:44,740 --> 00:18:48,880 Este era mi proyecto de aquí 399 00:18:48,880 --> 00:18:51,480 Y ya está 400 00:18:51,480 --> 00:18:52,579 Esto lo había comentado 401 00:18:52,579 --> 00:18:55,640 Aquí tenía yo el switch nota 402 00:18:55,640 --> 00:18:56,400 Este 403 00:18:56,400 --> 00:18:58,539 Había agrupado estos 404 00:18:58,539 --> 00:19:05,200 1, 2, 3, 4 405 00:19:05,200 --> 00:19:07,140 5 406 00:19:07,140 --> 00:19:09,059 Este 407 00:19:09,059 --> 00:19:10,279 Ay, perdón, perdón 408 00:19:10,279 --> 00:19:11,880 Ah, vale, vale, esto era 409 00:19:11,880 --> 00:19:13,660 Sí, claro, es que con el 410 00:19:13,660 --> 00:19:16,460 Vale, tenía estos 4 agrupados aquí 411 00:19:16,460 --> 00:19:17,799 Luego el 5 y el 6 412 00:19:17,799 --> 00:19:19,420 Podía haber puesto 5,6 413 00:19:19,420 --> 00:19:21,039 Pero lo he puesto así 414 00:19:21,039 --> 00:19:23,160 para, vale, 7 y 8 415 00:19:23,160 --> 00:19:25,380 vale, pues esta es mi 416 00:19:25,380 --> 00:19:27,059 mi switch case 417 00:19:27,059 --> 00:19:28,519 entendemos los detalles y todo 418 00:19:28,519 --> 00:19:31,500 que lo hemos ejecutado antes y nos ha funcionado 419 00:19:31,500 --> 00:19:31,680 ¿no? 420 00:19:33,019 --> 00:19:35,220 bueno, vamos a volver a ejecutarlo 421 00:19:35,220 --> 00:19:43,259 y nos sale este error 422 00:19:43,259 --> 00:19:45,099 que sale tropecientas veces 423 00:19:45,099 --> 00:19:47,380 y que se refiere a mil 424 00:19:47,380 --> 00:19:48,500 cosas distintas 425 00:19:48,500 --> 00:19:50,579 y una vez se puede volver loco 426 00:19:50,579 --> 00:19:53,220 pero la gran mayoría 427 00:19:53,220 --> 00:19:55,119 de las veces este error que es 428 00:19:55,119 --> 00:19:57,480 absolutamente nada explicativo 429 00:19:57,480 --> 00:19:59,099 nada explicativo 430 00:19:59,099 --> 00:20:00,859 se debe a una situación que se da 431 00:20:00,859 --> 00:20:02,599 continuamente y es 432 00:20:02,599 --> 00:20:04,660 que estás compilando 433 00:20:04,660 --> 00:20:07,180 con un nivel de compilación que es superior 434 00:20:07,180 --> 00:20:09,319 al de la máquina virtual 435 00:20:09,319 --> 00:20:10,539 que lo está ejecutando 436 00:20:10,539 --> 00:20:13,079 entonces cada vez que veáis 437 00:20:13,079 --> 00:20:14,839 esta ventanita casi seguro 438 00:20:14,839 --> 00:20:16,599 que vuestro error viene por ahí 439 00:20:16,599 --> 00:20:19,460 pero si lo familiarizando ya con la cantidad de errores que os pueden venir 440 00:20:19,460 --> 00:20:20,980 claro que viene por ahí 441 00:20:20,980 --> 00:20:22,819 pero si es que acabamos de cambiar la máquina virtual 442 00:20:22,819 --> 00:20:24,980 hemos puesto que lo ejecuto con la 1.8 443 00:20:24,980 --> 00:20:27,519 y yo mi proyecto 444 00:20:27,519 --> 00:20:29,880 no le he cambiado el nivel de compilación 445 00:20:29,880 --> 00:20:31,460 sigue compilando con el 1B 446 00:20:31,460 --> 00:20:33,299 con la JDK20, no se lo he cambiado 447 00:20:33,299 --> 00:20:35,359 entonces me sale este error 448 00:20:35,359 --> 00:20:36,640 que no me explica nada 449 00:20:36,640 --> 00:20:38,660 no me explica absolutamente nada 450 00:20:38,660 --> 00:20:41,940 pero como a uno ya le salió una vez 451 00:20:41,940 --> 00:20:42,960 y lo averiguó 452 00:20:42,960 --> 00:20:44,259 de hecho 453 00:20:44,259 --> 00:20:46,599 como está la traza de error 454 00:20:46,599 --> 00:20:48,619 que es otra cosa que ya entenderemos 455 00:20:48,619 --> 00:20:51,440 habilitada, si uno se va a las líneas rojas 456 00:20:51,440 --> 00:20:53,720 pues aquí se lo explica más 457 00:20:53,720 --> 00:20:57,119 le dice, oye, ejemplo case 458 00:20:57,119 --> 00:20:58,299 ha sido compilado 459 00:20:58,299 --> 00:21:01,240 a una versión de compilación más reciente 460 00:21:01,240 --> 00:21:02,920 que la Java Runtime 461 00:21:02,920 --> 00:21:05,059 que estás usando, te lo está diciendo 462 00:21:05,059 --> 00:21:07,099 pero esta traza 463 00:21:07,099 --> 00:21:08,559 uno podría no tener acceso a ella 464 00:21:08,559 --> 00:21:10,500 porque podrías no tener acceso a la consola 465 00:21:10,500 --> 00:21:12,200 verías la ventanita 466 00:21:12,200 --> 00:21:14,900 bueno, pues significa eso 467 00:21:14,900 --> 00:21:17,059 ¿cómo arreglaríamos eso? 468 00:21:17,140 --> 00:21:19,220 si uno tiene que compilar con esa máquina virtual 469 00:21:19,220 --> 00:21:20,859 perdón, si uno tiene que ejecutar 470 00:21:20,859 --> 00:21:23,059 con esa máquina virtual sí o sí, si eso no lo puede cambiar 471 00:21:23,059 --> 00:21:24,660 porque esa es su restricción 472 00:21:24,660 --> 00:21:26,599 tiene que cambiarlo, tiene que ejecutarlo 473 00:21:26,599 --> 00:21:28,519 esa máquina virtual, lo que tiene que hacer es 474 00:21:28,519 --> 00:21:29,660 bajar el nivel de compilación 475 00:21:29,660 --> 00:21:32,480 vale, pues donde baja el nivel de compilación 476 00:21:32,480 --> 00:21:36,400 bueno, pues lo mismo 477 00:21:36,400 --> 00:21:38,039 botón derecho propiedades 478 00:21:38,640 --> 00:21:40,279 donde 479 00:21:40,279 --> 00:21:41,839 uno puede cambiar 480 00:21:41,839 --> 00:21:43,759 muchas cosas de la configuración del proyecto 481 00:21:43,759 --> 00:21:46,119 en botón derecho propiedades 482 00:21:46,119 --> 00:21:48,039 está esta pestañita que hemos abierto antes 483 00:21:48,039 --> 00:21:49,759 para cambiar la máquina virtual 484 00:21:49,759 --> 00:21:52,079 y también hay una que es java compiler 485 00:21:52,079 --> 00:21:53,940 y aquí te permite 486 00:21:53,940 --> 00:21:55,279 Cambiar el nivel de compilación 487 00:21:55,279 --> 00:21:56,599 Ahora lo tenemos al 20 488 00:21:56,599 --> 00:21:59,319 Porque es el más alto 489 00:21:59,319 --> 00:22:01,460 Que permite la JDK que tenemos 490 00:22:01,460 --> 00:22:03,940 Tendría que cambiarlo al 1.8 491 00:22:03,940 --> 00:22:05,940 Que es el de la máquina virtual 492 00:22:05,940 --> 00:22:07,660 Que tengo, lo tendría que cambiar al 1.8 493 00:22:07,660 --> 00:22:10,279 ¿Vale? Porque mi máquina virtual es la 1.8 494 00:22:10,279 --> 00:22:12,420 Una vez que ya lo he cambiado 495 00:22:12,420 --> 00:22:18,000 Me dice 496 00:22:18,000 --> 00:22:19,740 Para recompilar 497 00:22:19,740 --> 00:22:21,079 Tengo que 498 00:22:21,079 --> 00:22:23,660 Reconstruir el proyecto, si, si, reconstruye 499 00:22:23,660 --> 00:22:25,140 Lo que quieras, vale 500 00:22:25,140 --> 00:22:25,740 A ver 501 00:22:25,740 --> 00:22:29,690 Vale, ya hemos cambiado el nivel de compilación 502 00:22:29,690 --> 00:22:31,529 Y la hemos liado 503 00:22:31,529 --> 00:22:33,890 Esto ya no lo podemos usar 504 00:22:33,890 --> 00:22:35,910 ¿Vale? Esto ya no lo podemos usar 505 00:22:35,910 --> 00:22:39,869 Porque esto se incorporó como 506 00:22:39,869 --> 00:22:41,849 Tontuna, como tantas otras 507 00:22:41,849 --> 00:22:44,809 A partir de cierto nivel de compilación 508 00:22:44,809 --> 00:22:46,990 Entonces ya no lo podemos usar 509 00:22:46,990 --> 00:22:47,750 ¿Vale? 510 00:22:47,750 --> 00:22:49,609 Pero no pasa nada porque yo me pongo aquí 511 00:22:49,609 --> 00:22:51,329 Me pongo esto 512 00:22:51,329 --> 00:22:53,130 Me pongo esto 513 00:22:53,130 --> 00:22:55,430 Como soy realmente, sé hacer las cosas 514 00:22:55,430 --> 00:22:58,450 Y no soy un robot 515 00:22:58,450 --> 00:23:00,809 Un tonto que busca en chat 516 00:23:00,809 --> 00:23:01,829 GPT y 517 00:23:01,829 --> 00:23:04,470 Nada, pues entonces yo me hago esto 518 00:23:04,470 --> 00:23:05,369 Y digo, ala 519 00:23:05,369 --> 00:23:08,269 Apañado 520 00:23:08,269 --> 00:23:10,430 Ya lo tengo, que no me dejas usar la coma 521 00:23:10,430 --> 00:23:11,750 Pues uso esto, que es lo mismo 522 00:23:11,750 --> 00:23:13,470 ¿Vale? 523 00:23:14,730 --> 00:23:16,509 Que es poner todos los cases 524 00:23:16,509 --> 00:23:17,849 Como aquí 525 00:23:17,849 --> 00:23:20,210 Uno debajo de otro, me da igual 526 00:23:20,210 --> 00:23:21,990 Los seguidos, y esto significa 527 00:23:21,990 --> 00:23:23,569 Que es el caso uno 528 00:23:23,569 --> 00:23:25,430 entras a la nada 529 00:23:25,430 --> 00:23:27,369 y ya te haces todo hasta el break 530 00:23:27,369 --> 00:23:28,130 ¿qué es esto? 531 00:23:28,809 --> 00:23:30,269 que no es el caso 1 pero es el 2 532 00:23:30,269 --> 00:23:32,349 entras a la nada porque aquí hay vacío 533 00:23:32,349 --> 00:23:35,230 y ya te haces todo hasta el break 534 00:23:35,230 --> 00:23:37,150 ¿qué es el caso 3? 535 00:23:37,289 --> 00:23:39,269 entras a la nada porque aquí hay vacío 536 00:23:39,269 --> 00:23:40,930 y ya te haces todo hasta el break 537 00:23:40,930 --> 00:23:41,549 que es el 4 538 00:23:41,549 --> 00:23:45,410 entonces es importantísimo 539 00:23:45,410 --> 00:23:46,869 entender todo 540 00:23:46,869 --> 00:23:48,710 lo que estamos haciendo 541 00:23:48,710 --> 00:23:51,049 tenerlo todo entendido 542 00:23:51,049 --> 00:23:52,609 y todo ahí almacenado en la cabeza 543 00:23:52,609 --> 00:23:55,829 Que yo me puedo permitir 544 00:23:55,829 --> 00:23:57,490 Trabajar con un nivel de compilación mayor 545 00:23:57,490 --> 00:23:59,609 Porque no voy a trabajar con la máquina virtual 8 546 00:23:59,609 --> 00:24:02,509 Si no con la que está en la JDK 20 547 00:24:02,509 --> 00:24:04,029 Que no es lo habitual 548 00:24:04,029 --> 00:24:05,349 Pues 549 00:24:05,349 --> 00:24:06,549 Estupendo 550 00:24:06,549 --> 00:24:09,509 Pongo las comitas y ya está 551 00:24:09,509 --> 00:24:11,849 Voy a volver a hacer el proceso 552 00:24:11,849 --> 00:24:13,130 De cambiar la máquina virtual 553 00:24:13,130 --> 00:24:14,650 De la 8 a la que teníamos 554 00:24:14,650 --> 00:24:19,039 Cambiar la máquina virtual 555 00:24:19,039 --> 00:24:21,099 Una vez que no las tiene configuradas es más fácil 556 00:24:21,099 --> 00:24:23,259 Le da aquí a botón derecho 557 00:24:23,259 --> 00:24:27,309 Propiedades 558 00:24:27,309 --> 00:24:29,470 Y te salen todas las que tienes 559 00:24:29,470 --> 00:24:30,289 Pues esta 560 00:24:30,289 --> 00:24:36,089 Y ahora 561 00:24:36,089 --> 00:24:41,980 Vale, ya he cambiado a la JDK20 otra vez 562 00:24:41,980 --> 00:24:44,680 Y ahora ya puedo cambiar el nivel de compilación 563 00:24:44,680 --> 00:24:46,740 Ya lo puedo cambiar al 20 564 00:24:46,740 --> 00:24:51,640 Lo cambio al 20 565 00:24:51,640 --> 00:24:54,759 Y al cambiarlo al 20 ya 566 00:24:54,759 --> 00:24:57,500 La tontuna esta 567 00:24:57,500 --> 00:24:58,740 Pues ya está 568 00:24:58,740 --> 00:25:01,420 Pues ya me deja esta y alguna otra chorrada 569 00:25:01,420 --> 00:25:04,359 Que está incorporada después 570 00:25:04,359 --> 00:25:12,740 Vale, pues entonces 571 00:25:12,740 --> 00:25:14,140 Tenéis que aprender a programar 572 00:25:14,140 --> 00:25:16,799 No tenéis que ser un catálogo de chorraditas 573 00:25:16,799 --> 00:25:18,839 Que se pueden hacer con el lenguaje y se han incorporado 574 00:25:18,839 --> 00:25:19,700 Eso me da lo mismo 575 00:25:19,700 --> 00:25:22,259 Lo que tenéis es que aprender a programar 576 00:25:22,259 --> 00:25:26,099 Bueno 577 00:25:26,099 --> 00:25:29,339 Vale, pues el switch case 578 00:25:29,339 --> 00:25:32,000 No tiene más historias que esta 579 00:25:32,000 --> 00:25:33,460 Luego se trata de 580 00:25:33,460 --> 00:25:35,700 seleccionarlo en una situación en la que me facilite 581 00:25:35,700 --> 00:25:37,000 la tarea en vez de complicármela 582 00:25:37,000 --> 00:25:38,019 y ya está 583 00:25:38,019 --> 00:25:41,720 ¿vale? alguien me había dicho de hacer un ejercicio 584 00:25:41,720 --> 00:25:42,980 con el switch case, ¿verdad? 585 00:25:43,180 --> 00:25:44,420 por ejemplo, tú 586 00:25:44,420 --> 00:25:46,859 el 10 de aquí 587 00:25:46,859 --> 00:25:49,619 venga, vamos a ver si el 10 de aquí se prestaría 588 00:25:49,619 --> 00:25:51,000 a hacerlo con el 589 00:25:51,000 --> 00:25:53,380 el switch case mínimamente 590 00:25:53,380 --> 00:25:55,640 venga, vamos a ver como lo haríamos 591 00:25:55,640 --> 00:25:57,079 este, el del triángulo 592 00:25:57,079 --> 00:25:59,079 vamos a 593 00:25:59,079 --> 00:26:00,440 a ver 594 00:26:00,440 --> 00:26:05,779 ejercicio, sentencia y 10 595 00:26:05,779 --> 00:26:13,769 ejercicio 10 596 00:26:13,769 --> 00:26:55,250 vale, pues aquí 597 00:26:55,250 --> 00:26:57,529 datos de entrada 598 00:26:57,529 --> 00:26:58,430 tres lados 599 00:26:58,430 --> 00:27:00,150 posibles salidas 600 00:27:00,150 --> 00:27:03,089 estos tres lados no pueden formar un triángulo 601 00:27:03,089 --> 00:27:06,190 o si pueden formar un triángulo 602 00:27:06,190 --> 00:27:07,710 y en el caso de que puedan formarlo 603 00:27:07,710 --> 00:27:09,710 ese triángulo es isósceles 604 00:27:09,710 --> 00:27:11,309 es escaleno o es equilátero 605 00:27:11,309 --> 00:27:12,410 vale 606 00:27:12,410 --> 00:27:13,869 entonces 607 00:27:13,869 --> 00:27:16,410 una vez entendido 608 00:27:16,410 --> 00:27:18,769 las salidas que tiene ese programa 609 00:27:18,769 --> 00:27:20,789 que es decir, no es triángulo 610 00:27:20,789 --> 00:27:22,410 o es triángulo equilátero 611 00:27:22,410 --> 00:27:24,569 o es isósceles o es escaleno, pues ahora ya es 612 00:27:24,569 --> 00:27:26,450 ver qué condiciones me definen 613 00:27:26,450 --> 00:27:27,930 cada una de esas salidas, ¿verdad? 614 00:27:27,970 --> 00:27:29,289 ¿Qué condiciones me definen cada una de esas salidas? 615 00:27:30,289 --> 00:27:32,690 Vale, entonces, ahora ya es 616 00:27:32,690 --> 00:27:34,269 cuando pues tenemos que ya 617 00:27:34,269 --> 00:27:35,589 averiguar, indagar 618 00:27:35,589 --> 00:27:38,089 conocimientos al margen de Java 619 00:27:38,089 --> 00:27:40,630 que es dados los datos 620 00:27:40,630 --> 00:27:42,549 de entrada, que en este caso son tres 621 00:27:42,549 --> 00:27:43,730 lados, los datos de entrada 622 00:27:43,730 --> 00:27:47,410 que me definen que sea que puedan formar un triángulo 623 00:27:47,410 --> 00:27:48,650 o que no puedan formarlo 624 00:27:48,650 --> 00:27:51,309 eso ya lo habréis buscado por ejemplo 625 00:27:51,309 --> 00:27:53,869 y que conclusión habéis llegado 626 00:27:53,869 --> 00:27:55,349 en lenguaje natural digo, no en Java 627 00:27:55,349 --> 00:27:57,690 que condición tienen que cumplir 628 00:27:57,690 --> 00:28:01,250 los valores de las tres longitudes 629 00:28:01,250 --> 00:28:03,329 de un triángulo 630 00:28:03,329 --> 00:28:04,650 para que realmente puedan formarlo 631 00:28:04,650 --> 00:28:06,690 porque no todo puede formar un triángulo 632 00:28:06,690 --> 00:28:07,150 obviamente 633 00:28:07,150 --> 00:28:15,839 si te dan este lado 634 00:28:15,839 --> 00:28:20,089 Te da en este lado 635 00:28:20,089 --> 00:28:23,819 Y te da en este lado 636 00:28:23,819 --> 00:28:25,279 Con esto 637 00:28:25,279 --> 00:28:28,180 A mi ojo me resultaría imposible hacer un triángulo 638 00:28:28,180 --> 00:28:28,539 ¿Verdad? 639 00:28:29,500 --> 00:28:30,619 ¿Dónde coloco este? 640 00:28:33,410 --> 00:28:34,849 Este lo podría colocar aquí 641 00:28:34,849 --> 00:28:38,579 Ah, ya se me va a borrar esto, bueno, da igual 642 00:28:38,579 --> 00:28:40,019 Pero entonces, ¿con el otro qué hago? 643 00:28:40,039 --> 00:28:41,160 El otro no me llega al otro lado 644 00:28:41,160 --> 00:28:44,019 ¿Cómo los coloco? Para hacer un triángulo 645 00:28:44,019 --> 00:28:46,720 Entonces, es cierto 646 00:28:46,720 --> 00:28:48,859 Que cualesquiera tres longitudes 647 00:28:48,859 --> 00:28:49,500 No me valen 648 00:28:49,500 --> 00:28:50,900 Cualesquiera tres no me valen 649 00:28:50,900 --> 00:28:53,160 Entonces como cualesquiera tres no me valen 650 00:28:53,160 --> 00:28:54,339 Tiene que haber una condición 651 00:28:54,339 --> 00:28:57,759 Para que tres longitudes puedan formar un triángulo 652 00:28:57,759 --> 00:29:01,160 Vale, pues cuando habéis buscado esa conclusión 653 00:29:01,160 --> 00:29:02,759 Condición a la conclusión habéis llegado 654 00:29:02,759 --> 00:29:04,400 Que alguien me la diga 655 00:29:04,400 --> 00:29:05,079 Tú por ejemplo 656 00:29:05,079 --> 00:29:11,859 Vaya por Dios 657 00:29:11,859 --> 00:29:16,049 Pues esto yo no contaba con que estuviera 658 00:29:16,049 --> 00:29:19,269 Bueno, pues habéis 659 00:29:19,269 --> 00:29:21,269 Leyendo el enunciado habéis encontrado eso 660 00:29:21,269 --> 00:29:21,809 ¿Vale? 661 00:29:23,930 --> 00:29:24,410 Vale 662 00:29:24,410 --> 00:29:26,809 leyendo el enunciado, y si no hubiera sido 663 00:29:26,809 --> 00:29:28,910 leyendo el enunciado, pues lo habría buscado por ahí 664 00:29:28,910 --> 00:29:35,920 vale, la condición 665 00:29:35,920 --> 00:29:36,940 aquí ya está expresada 666 00:29:36,940 --> 00:29:39,359 habrá un lado que sea el mayor 667 00:29:39,359 --> 00:29:41,839 de los tres, el mayor 668 00:29:41,839 --> 00:29:43,200 o habrá 669 00:29:43,200 --> 00:29:45,900 y puede ocurrir que los otros dos 670 00:29:45,900 --> 00:29:48,000 sean iguales que él, o alguno sea igual que él 671 00:29:48,000 --> 00:29:49,700 pero habrá una longitud que sea la mayor 672 00:29:49,700 --> 00:29:51,640 pues la longitud mayor 673 00:29:51,640 --> 00:29:53,819 vale, tiene que ser más pequeña 674 00:29:53,819 --> 00:29:55,339 que la suma de los otros, está claro, ¿no? 675 00:29:55,339 --> 00:29:56,680 para que así los otros dos lados 676 00:29:56,680 --> 00:29:59,140 lleguen a juntarse, cuando hacemos así, ¡pam! 677 00:29:59,240 --> 00:30:01,440 Lleguen a juntarse y no se queden ahí separados 678 00:30:01,440 --> 00:30:02,859 ¿Vale? 679 00:30:02,940 --> 00:30:04,299 Bueno, pues entonces esa condición 680 00:30:04,299 --> 00:30:06,319 Vamos a leer las 681 00:30:06,319 --> 00:30:07,160 Y luego 682 00:30:07,160 --> 00:30:10,180 Los datos de entrada 683 00:30:10,180 --> 00:30:24,130 Vale, datos de entrada 684 00:30:24,130 --> 00:30:26,250 Lado 1, lado 2, lado 3 685 00:30:26,250 --> 00:30:27,250 Venga 686 00:30:27,250 --> 00:30:29,150 Para 687 00:30:29,150 --> 00:30:42,079 Pues venga, vamos a 688 00:30:42,079 --> 00:30:43,859 Meterle el programa 689 00:30:43,859 --> 00:30:45,640 Estaría mucho mejor, le ponemos un mensajito 690 00:30:45,640 --> 00:30:47,740 Introduzca lado 1, introduzca lado 2, introduzca lado 3 691 00:30:47,740 --> 00:30:48,440 Estaría mucho mejor 692 00:30:48,440 --> 00:30:54,779 Pero bueno, por comodidad vamos a pedir los lados sin más 693 00:30:54,779 --> 00:31:01,779 Entonces lado 1 sería scan.nextIn 694 00:31:01,779 --> 00:31:07,180 Lado 2 lo mismo 695 00:31:07,180 --> 00:31:23,700 Vale, bueno pues entonces como de forma más cómoda nos plantearíamos esto 696 00:31:23,700 --> 00:31:29,420 Sería decir primero, voy a ver si puede ser triángulo o si no puede serlo 697 00:31:29,420 --> 00:31:32,420 porque si no puede serlo 698 00:31:32,420 --> 00:31:34,200 ya tengo la respuesta 699 00:31:34,200 --> 00:31:36,000 y en el caso 700 00:31:36,000 --> 00:31:38,200 de que pueda serlo, ahora ya 701 00:31:38,200 --> 00:31:40,619 puedo distinguir tres opciones 702 00:31:40,619 --> 00:31:42,119 puedo distinguir tres opciones 703 00:31:42,119 --> 00:31:44,339 entonces la primera condición que sería interesante 704 00:31:44,339 --> 00:31:46,319 plantearse es la condición 705 00:31:46,319 --> 00:31:48,319 de que el lado mayor sea 706 00:31:48,319 --> 00:31:50,619 mayor 707 00:31:50,619 --> 00:31:52,599 a la suma, sea más pequeño 708 00:31:52,599 --> 00:31:53,779 que la suma de los otros dos 709 00:31:53,779 --> 00:31:56,720 ¿vale? entonces esa condición 710 00:31:56,720 --> 00:31:59,279 ¿cómo la habéis hecho? 711 00:31:59,420 --> 00:32:03,720 ¿cómo lo habéis planteado esa condición? 712 00:32:05,619 --> 00:32:06,660 la condición 713 00:32:06,660 --> 00:32:08,680 ¿cómo habéis hecho la condición de 714 00:32:08,680 --> 00:32:10,099 no ser triángulo? 715 00:32:10,460 --> 00:32:12,140 o de serlo, me da igual porque es la negada 716 00:32:12,140 --> 00:32:14,240 que el lado mayor sea menos a los otros 717 00:32:14,240 --> 00:32:16,079 a la suma de los otros dos 718 00:32:16,079 --> 00:32:17,859 ¿cómo lo habéis planteado? 719 00:32:31,559 --> 00:32:32,940 vale, esa sería la forma 720 00:32:32,940 --> 00:32:34,319 quizás más sencilla de planteárselo 721 00:32:34,319 --> 00:32:37,319 el lado mayor va a ser uno de los tres 722 00:32:37,319 --> 00:32:38,599 entonces uno podría haber dicho 723 00:32:38,599 --> 00:32:40,160 bueno, primero voy a sacar el lado mayor 724 00:32:40,160 --> 00:32:42,759 No es que tengo el lado mayor, mira a ver si es mayor que la suma 725 00:32:42,759 --> 00:32:45,099 Pero es que el proceso de sacar el lado mayor 726 00:32:45,099 --> 00:32:46,680 Ya es casi más engorroso 727 00:32:46,680 --> 00:32:48,700 Que plantearte las tres opciones 728 00:32:48,700 --> 00:32:50,339 ¿Verdad? Es casi más engorroso 729 00:32:50,339 --> 00:32:52,480 Entonces, el lado mayor va a ser uno de los tres 730 00:32:52,480 --> 00:32:54,579 Pues entonces efectivamente 731 00:32:54,579 --> 00:32:55,920 Si el lado uno 732 00:32:55,920 --> 00:32:58,180 ¿Vale? Sería una opción 733 00:32:58,180 --> 00:33:00,640 Entonces, por ejemplo 734 00:33:00,640 --> 00:33:02,160 Podríamos haber hecho aquí 735 00:33:02,160 --> 00:33:03,140 Boolean 736 00:33:03,140 --> 00:33:06,119 Es triángulo 737 00:33:06,119 --> 00:33:12,059 Y esta condición podría ser 738 00:33:12,059 --> 00:34:18,590 Si lado 1 es mayor que lado 2 más lado 3, o, y aquí o, lado 1 y aquí lado 3, lado 2 y lado 1, perdón, lado es menor, estoy poniendo mayor, ¿no? 739 00:34:18,590 --> 00:34:25,440 vale, entonces si es un triángulo 740 00:34:25,440 --> 00:34:27,119 uno de los lados 741 00:34:27,119 --> 00:34:29,480 tiene que ser menor que la suma de los otros dos 742 00:34:29,480 --> 00:34:31,219 ¿verdad? uno de los lados 743 00:34:31,219 --> 00:34:32,500 tiene que ser menor que la suma de los otros dos 744 00:34:32,500 --> 00:34:32,900 ¿es esta? 745 00:34:47,900 --> 00:34:48,920 ¿pero te hace falta? 746 00:34:50,539 --> 00:34:51,500 hacer eso antes 747 00:34:51,500 --> 00:34:55,440 vale, pero vamos a completarlo 748 00:34:55,440 --> 00:34:57,519 vale, entonces esta sería la condición 749 00:34:57,519 --> 00:34:58,880 de ser triángulo, ¿verdad? 750 00:34:59,539 --> 00:35:01,420 al menos uno de los lados 751 00:35:01,420 --> 00:35:03,219 tiene que ser menor 752 00:35:03,219 --> 00:35:04,780 Que la suma de los otros dos 753 00:35:04,780 --> 00:35:05,679 ¿Verdad? 754 00:35:06,400 --> 00:35:08,280 Entonces, ahora ya sé que podríamos hacer 755 00:35:08,280 --> 00:35:19,800 Si no es triángulo 756 00:35:19,800 --> 00:35:22,539 Entonces podríamos poner 757 00:35:22,539 --> 00:35:23,599 Si son 758 00:35:23,599 --> 00:35:32,880 Ahora, que no ha entrado en este 759 00:35:32,880 --> 00:35:34,460 Que no ha entrado en este 760 00:35:34,460 --> 00:35:35,659 Será porque es triángulo 761 00:35:35,659 --> 00:35:38,500 Pues ahora ya nos podemos plantear el resto de las condiciones 762 00:35:38,500 --> 00:35:41,500 La de equilátero, por ejemplo 763 00:35:41,500 --> 00:35:43,280 Lado 1 764 00:35:43,280 --> 00:35:46,539 Igual a lado 2 765 00:35:46,539 --> 00:35:51,880 Y lado 2 igual a lado 3 766 00:35:51,880 --> 00:36:00,889 Que no ha entrado aquí 767 00:36:00,889 --> 00:36:02,630 Porque no son iguales 768 00:36:02,630 --> 00:36:04,489 Pues entonces la opción que nos vamos a plantear 769 00:36:04,489 --> 00:36:05,909 Isósceles, pues isósceles 770 00:36:05,909 --> 00:36:09,650 La condición de isósceles ya la hicimos en otro ejercicio 771 00:36:09,650 --> 00:36:16,389 La condición de isósceles la podemos simplificar poniendo 772 00:36:16,389 --> 00:36:20,409 Si lado 1 es igual a lado 2 773 00:36:20,409 --> 00:36:29,019 O lado 2 es igual a lado 3 774 00:36:29,019 --> 00:36:34,780 O lado 1 es igual a lado 3 775 00:36:34,780 --> 00:36:38,960 Si se cumple cualquiera de estos 776 00:36:38,960 --> 00:36:40,440 Será isósceles 777 00:36:40,440 --> 00:36:48,880 Que tampoco 778 00:36:48,880 --> 00:36:54,840 Sí, es el 10 creo 779 00:36:54,840 --> 00:36:57,039 ¿Eh? 780 00:36:59,420 --> 00:37:01,659 Sí, él le ha pedido que lo hiciéramos en switch case 781 00:37:01,659 --> 00:37:03,480 Para ver cómo podríamos plantear esto así 782 00:37:03,480 --> 00:37:05,619 Pero primero vamos a ponerlo como lo haríamos 783 00:37:05,619 --> 00:37:08,380 Porque este ejercicio a switch case no le aplica 784 00:37:08,380 --> 00:37:09,699 Entonces hombre 785 00:37:09,699 --> 00:37:11,239 Podemos hacer una transformación 786 00:37:11,239 --> 00:37:12,780 Y tratar de hacerlo como switch case 787 00:37:12,780 --> 00:37:14,260 Para practicar con el switch case 788 00:37:14,260 --> 00:37:16,980 Pero no es un ejercicio en el que aplicaría 789 00:37:16,980 --> 00:37:18,599 No usaríamos el switch case aquí 790 00:37:18,599 --> 00:37:21,139 Porque las condiciones no son 791 00:37:21,139 --> 00:37:23,539 Directamente que una variable tome 792 00:37:23,539 --> 00:37:24,960 Uno de varios valores 793 00:37:24,960 --> 00:37:27,639 Entonces podemos echarle imaginación 794 00:37:27,639 --> 00:37:30,039 Si queréis para practicar con el switch case 795 00:37:30,039 --> 00:37:31,800 Pero nunca haríamos este ejercicio con el switch case 796 00:37:31,800 --> 00:37:33,579 Bueno, imagino que 797 00:37:33,579 --> 00:37:35,420 Habréis resuelto algo parecido a esto 798 00:37:35,420 --> 00:37:36,119 ¿no? supongo 799 00:37:36,119 --> 00:37:41,159 ¿lo pusiste con un? 800 00:37:41,619 --> 00:37:43,579 bueno, si da igual, si es que me da igual 801 00:37:43,579 --> 00:37:45,739 yo lo he hecho para no poner toda esta condición aquí dentro 802 00:37:45,739 --> 00:37:47,659 ¿vale? 803 00:37:48,739 --> 00:37:49,719 simplemente lo he sacado 804 00:37:49,719 --> 00:37:50,199 fuera 805 00:37:50,199 --> 00:37:53,659 pues porque es una condición muy larga para no meterla 806 00:37:53,659 --> 00:37:54,980 toda aquí dentro, ¿vale? 807 00:37:58,570 --> 00:37:59,809 pero en cualquier caso 808 00:37:59,809 --> 00:38:01,650 lo que habréis es distinguido 809 00:38:01,650 --> 00:38:03,789 tres o cuatro condiciones, ¿no? 810 00:38:04,869 --> 00:38:06,050 si no lo habéis 811 00:38:06,050 --> 00:38:07,469 hecho con él, tres o cuatro condiciones 812 00:38:07,469 --> 00:38:18,449 Me da igual que las hayáis sacado antes a una variable, bulean o no, pero el programa en cualquier caso es cuatro ramas, son cuatro ramas, no triángulo, isósceles, equilátero y escaleno. 813 00:38:18,969 --> 00:38:21,289 Lo importante aquí es identificar que son cuatro ramas. 814 00:38:21,829 --> 00:38:32,230 ¿Cómo lo programemos ahora? Es lo de menos, o sea, siempre y cuando sea más o menos claro y legible, pero lo que es inevitable es que aquí hay cuatro ramas, que hay que programar. 815 00:38:32,230 --> 00:38:35,530 cuatro ramas puedo hacer con if, else, anidados 816 00:38:35,530 --> 00:38:37,570 puedo arrastrar todas las condiciones 817 00:38:37,570 --> 00:38:39,489 dentro, sacar las condiciones 818 00:38:39,489 --> 00:38:41,929 a boolean, en lugar de if, else, anidados 819 00:38:41,929 --> 00:38:43,210 if, else, if, else, if 820 00:38:43,210 --> 00:38:44,909 luego tengo varias opciones 821 00:38:44,909 --> 00:38:47,329 yo aquí he sacado la condición de ser 822 00:38:47,329 --> 00:38:48,190 triángulo fuera 823 00:38:48,190 --> 00:38:51,349 pues simplemente para que esto 824 00:38:51,349 --> 00:38:52,170 no quede tan largo 825 00:38:52,170 --> 00:38:55,389 también podría haber sacado fuera 826 00:38:55,389 --> 00:38:57,550 esta y haberla llamado aquí 827 00:38:57,550 --> 00:38:59,369 equilátero y haber sacado esta 828 00:38:59,369 --> 00:39:01,210 fuera y haberla llamado es isósceles 829 00:39:01,210 --> 00:39:03,809 y haberla metido, y a lo mejor el programa queda más claro 830 00:39:03,809 --> 00:39:05,150 si lo saco a boolean separado 831 00:39:05,150 --> 00:39:06,809 es triángulo, es equilátero, es isósceles 832 00:39:06,809 --> 00:39:09,989 hay muchas formas de hacer lo mismo 833 00:39:09,989 --> 00:39:11,590 entonces aquí 834 00:39:11,590 --> 00:39:14,110 en este caso en que las condiciones 835 00:39:14,110 --> 00:39:16,469 son tampoco homogéneas 836 00:39:16,469 --> 00:39:17,050 entre sí 837 00:39:17,050 --> 00:39:20,070 esa de arriba no tiene nada que ver con la de abajo 838 00:39:20,070 --> 00:39:22,070 pues no es un programa 839 00:39:22,070 --> 00:39:23,929 que uno hiciera con un switch case 840 00:39:23,929 --> 00:39:26,090 un switch case uno lo planta 841 00:39:26,090 --> 00:39:28,030 cuando lo que tiene que distinguir es en función 842 00:39:28,030 --> 00:39:29,449 del valor de una variable, acá pon 843 00:39:29,449 --> 00:39:31,610 entonces para una variable tiene que distinguir 844 00:39:31,610 --> 00:39:32,630 entonces planta un switch case 845 00:39:32,630 --> 00:39:35,489 ¿vale? entonces ¿cómo transformaríamos 846 00:39:35,489 --> 00:39:36,769 esto a un switch case? pues bueno 847 00:39:36,769 --> 00:39:39,349 tendríamos que echarle imaginación 848 00:39:39,349 --> 00:39:41,650 ¿cuál es la idea 849 00:39:41,650 --> 00:39:42,610 que teníais de partida? 850 00:39:43,110 --> 00:39:45,389 trabajar con el switch ¿a qué variable 851 00:39:45,389 --> 00:39:45,989 le pondríamos? 852 00:39:50,929 --> 00:39:53,070 claro pero el switch necesita una variable 853 00:39:53,070 --> 00:39:55,070 pero el switch necesita 854 00:39:55,070 --> 00:39:57,050 una única variable aquí 855 00:39:57,050 --> 00:39:58,829 o sea el switch y las decisiones 856 00:39:58,829 --> 00:40:01,909 se tienen que hacer siempre en función de una única variable 857 00:40:01,909 --> 00:40:03,989 y esas condiciones involucran varias 858 00:40:03,989 --> 00:40:05,869 entonces tienes que transformarlo todo 859 00:40:05,869 --> 00:40:08,750 para que las decisiones se tomen en función de una única variable 860 00:40:08,750 --> 00:40:12,769 entonces hombre, esa variable puede ser un boolean 861 00:40:12,769 --> 00:40:14,510 que tú has construido con las otras 862 00:40:14,510 --> 00:40:17,050 pero entonces el switch solo tendría verdadero o falso 863 00:40:17,050 --> 00:40:17,789 entonces sería un if 864 00:40:17,789 --> 00:40:22,750 o puede ser una variable que contenga diferencias relativas entre lados 865 00:40:22,750 --> 00:40:25,610 pero el switch case, la condición 866 00:40:25,610 --> 00:40:27,710 tiene que estar formulada 867 00:40:27,710 --> 00:40:30,309 en función exclusivamente de una variable 868 00:40:30,309 --> 00:40:31,570 entonces 869 00:40:31,570 --> 00:40:40,980 que contenga la condición 870 00:40:40,980 --> 00:40:43,519 claro, pero entonces haces un switch en función de un boolean 871 00:40:43,519 --> 00:40:44,980 que es switch, en el caso de true esto 872 00:40:44,980 --> 00:40:46,380 entonces es un if, es igual que un if 873 00:40:46,380 --> 00:40:49,079 un switch donde metes ahí un boolean 874 00:40:49,079 --> 00:40:51,460 case true, case false, solo tendría dos case 875 00:40:51,460 --> 00:40:53,820 case true, case false, entonces un switch con un boolean 876 00:40:53,820 --> 00:40:54,800 case true, case false 877 00:40:54,800 --> 00:40:57,139 no lo vas a ver, es un if 878 00:40:57,139 --> 00:40:59,260 if se da esto, si no lo otro 879 00:40:59,260 --> 00:41:01,719 no harías nunca un switch con un boolean 880 00:41:01,719 --> 00:41:03,159 porque solo tiene dos case, true, false 881 00:41:03,159 --> 00:41:05,340 entonces 882 00:41:05,340 --> 00:41:06,760 es 883 00:41:06,760 --> 00:41:09,340 formularlo con un switch case 884 00:41:09,340 --> 00:41:11,300 es que se complica innecesariamente 885 00:41:11,300 --> 00:41:13,440 claro, yo es que 886 00:41:13,440 --> 00:41:15,380 no, hay que elegir 887 00:41:15,380 --> 00:41:17,079 la sentencia que aplica en cada situación 888 00:41:17,079 --> 00:41:18,059 entonces del switch case 889 00:41:18,059 --> 00:41:21,280 la condición tiene que formularse en función 890 00:41:21,280 --> 00:41:23,300 de una única variable, entonces si a ti 891 00:41:23,300 --> 00:41:24,900 tu problema te está pidiendo eso 892 00:41:24,900 --> 00:41:27,300 en función de una única variable pasan 893 00:41:27,300 --> 00:41:29,159 cosas, entonces tengo un switch case 894 00:41:29,159 --> 00:41:30,820 en función de una única variable, pero es que aquí 895 00:41:30,820 --> 00:41:33,079 las condiciones dependen de tres variables 896 00:41:33,079 --> 00:41:35,280 entonces de esas tres variables 897 00:41:35,280 --> 00:41:37,280 tendría que mediante una fórmula 898 00:41:37,280 --> 00:41:39,059 transportarlas a una única variable 899 00:41:39,059 --> 00:41:40,719 y ser capaz de distinguir en función 900 00:41:40,719 --> 00:41:42,059 de los diferentes valores 901 00:41:42,059 --> 00:41:44,760 que podría ocurrir, podría hacerse 902 00:41:44,760 --> 00:41:46,760 pero el programa sería mucho más complicado de entender 903 00:41:46,760 --> 00:41:48,079 para el que lo viera 904 00:41:48,079 --> 00:41:49,960 a mi no se me ocurre al menos, dime 905 00:41:49,960 --> 00:41:52,219 si, si, si, claro, claro 906 00:41:52,219 --> 00:41:57,230 vale 907 00:41:57,230 --> 00:42:15,900 Aquí podríamos decidir a lo mejor 908 00:42:15,900 --> 00:42:18,699 Vale, que mi switch decida en función del lado 1 909 00:42:18,699 --> 00:42:20,739 Por ejemplo, en función del lado 1 910 00:42:20,739 --> 00:42:22,079 Y luego, switch 911 00:42:22,079 --> 00:42:23,420 Lado 1 912 00:42:23,420 --> 00:42:29,139 Case igual a lado 2 913 00:42:29,139 --> 00:42:30,940 Dentro del case me podría meter 914 00:42:30,940 --> 00:42:33,559 Y también lado 3, equilátero 915 00:42:33,559 --> 00:42:35,719 Pero es que se complica mucho 916 00:42:35,719 --> 00:42:36,599 ¿No? 917 00:42:37,539 --> 00:42:40,559 La clave aquí es decidir en función de qué variable decido 918 00:42:40,559 --> 00:42:41,460 es que tengo tres 919 00:42:41,460 --> 00:42:43,599 en la que involucra mi decisión 920 00:42:43,599 --> 00:42:45,659 la uno, la dos, la tres, decide en función de la uno 921 00:42:45,659 --> 00:42:47,679 vale, si la uno es esto 922 00:42:47,679 --> 00:42:49,440 pero no solo si es esto 923 00:42:49,440 --> 00:42:50,639 porque además tiene que ser lo otro 924 00:42:50,639 --> 00:42:52,800 entonces el case ya empieza a anidar cosas 925 00:42:52,800 --> 00:43:01,460 no podemos trabajar así 926 00:43:01,460 --> 00:43:02,579 tenemos que evitar 927 00:43:02,579 --> 00:43:08,719 si es true o es false 928 00:43:08,719 --> 00:43:10,880 si empezamos con es true o es false no hay nada 929 00:43:10,880 --> 00:43:13,000 alternativo a ser true o false 930 00:43:13,000 --> 00:43:15,880 es que no hay default 931 00:43:15,880 --> 00:43:17,619 o es true o es false, nunca va a haber un default 932 00:43:17,619 --> 00:43:20,219 Las cosas o son true o son false 933 00:43:20,219 --> 00:43:21,780 Al default no entraría jamás 934 00:43:21,780 --> 00:43:24,000 Tú puedes poner un default 935 00:43:24,000 --> 00:43:25,320 Pero al default no entraría nunca 936 00:43:25,320 --> 00:43:28,079 Porque o se es true o se es false 937 00:43:28,079 --> 00:43:31,920 Ese default lo puedes poner 938 00:43:31,920 --> 00:43:32,860 Pero jamás 939 00:43:32,860 --> 00:43:34,960 De hecho el compilador te diría 940 00:43:34,960 --> 00:43:36,559 Código inaccesible 941 00:43:36,559 --> 00:43:38,719 Nunca jamás entraría lo que hay en ese default 942 00:43:38,719 --> 00:43:42,280 Porque una condición 943 00:43:42,280 --> 00:43:43,659 O es true o es false 944 00:43:43,659 --> 00:43:45,699 Y si no es ni true ni false 945 00:43:45,699 --> 00:43:46,699 Entonces esto 946 00:43:46,699 --> 00:43:51,000 ¿vale? entonces he organizado un poquito 947 00:43:51,000 --> 00:43:52,340 el pensamiento para que 948 00:43:52,340 --> 00:43:54,300 los códigos que resulten 949 00:43:54,300 --> 00:43:56,780 sean un poquito organizados y en este caso 950 00:43:56,780 --> 00:43:59,360 la diferencia entre if, else if 951 00:43:59,360 --> 00:44:00,199 y switch case 952 00:44:00,199 --> 00:44:02,480 ambos son sentencias 953 00:44:02,480 --> 00:44:05,179 que hacen uno de varios caminos 954 00:44:05,179 --> 00:44:07,139 pero el if, else if 955 00:44:07,139 --> 00:44:09,280 las condiciones son todo lo abiertas 956 00:44:09,280 --> 00:44:11,219 que uno quiera, con el switch case 957 00:44:11,219 --> 00:44:13,000 la condición tiene que estar formulada 958 00:44:13,000 --> 00:44:14,760 en función del valor de una única variable 959 00:44:14,760 --> 00:44:16,739 en función del valor de una única variable 960 00:44:16,739 --> 00:44:18,940 ¿vale? entonces en función del tipo 961 00:44:18,940 --> 00:44:19,960 de problema que yo tenga 962 00:44:19,960 --> 00:44:21,639 ¿vale? como 963 00:44:21,639 --> 00:44:31,099 a ver, otro ejemplo raro 964 00:44:31,099 --> 00:44:41,210 por ejemplo, vale, a ver 965 00:44:41,210 --> 00:44:43,630 más cosas, por ejemplo 966 00:44:43,630 --> 00:44:47,510 vamos a seguir jugando con el switch case 967 00:44:47,510 --> 00:45:03,190 una transformación 968 00:45:03,190 --> 00:45:04,670 que podríais hacer, pero es 969 00:45:04,670 --> 00:45:06,090 hiper mega retorcida 970 00:45:06,090 --> 00:45:08,989 y ya veréis en lo que va a parar 971 00:45:08,989 --> 00:45:10,989 pero a ver 972 00:45:10,989 --> 00:45:12,710 está bien que la entendamos 973 00:45:12,710 --> 00:45:14,869 Para este mismo ejercicio de aquí 974 00:45:14,869 --> 00:45:16,889 Vamos a hacer una transformación extrañísima 975 00:45:16,889 --> 00:45:19,170 Pero vosotros lo habéis querido 976 00:45:19,170 --> 00:45:19,550 Vale 977 00:45:19,550 --> 00:45:23,789 Hemos dicho que el switch case 978 00:45:23,789 --> 00:45:25,690 Tiene que decidir en función 979 00:45:25,690 --> 00:45:27,130 De una única variable, ¿verdad? 980 00:45:29,719 --> 00:45:30,880 Vamos a poner aquí 981 00:45:30,880 --> 00:45:32,460 Otra forma rara 982 00:45:32,460 --> 00:45:44,469 El switch case sería en estas ramas 983 00:45:44,469 --> 00:45:46,730 Que es lo que fuera 984 00:45:46,730 --> 00:45:50,230 Esto es lo que vosotros queréis, ¿no? 985 00:45:51,130 --> 00:45:52,150 Hacer algo así 986 00:45:52,150 --> 00:45:54,809 Que las ramas se vayan a diferentes keys 987 00:45:54,809 --> 00:46:03,349 Ya, ya me imagino 988 00:46:03,349 --> 00:46:04,489 Pero vamos a 989 00:46:04,489 --> 00:46:06,570 Seguir jugando con el keys 990 00:46:06,570 --> 00:46:08,929 Vale 991 00:46:08,929 --> 00:46:20,250 Vamos a terminarlo 992 00:46:20,250 --> 00:46:27,820 Este 993 00:46:27,820 --> 00:46:29,519 Y este 994 00:46:29,519 --> 00:46:36,469 Variable 995 00:46:36,469 --> 00:46:43,019 ¿Eh? 996 00:46:45,809 --> 00:46:46,170 No 997 00:46:46,170 --> 00:46:49,980 Eh, bueno, da igual 998 00:46:49,980 --> 00:46:50,880 Da lo mismo 999 00:46:50,880 --> 00:46:53,559 Pero, o sea, el default se pone siempre al final 1000 00:46:53,559 --> 00:46:55,039 Que si no es de los anteriores 1001 00:46:55,039 --> 00:46:56,300 Entonces por defecto eso 1002 00:46:56,300 --> 00:46:57,260 A ver 1003 00:46:57,260 --> 00:46:58,719 en el orden en el que pongas 1004 00:46:58,719 --> 00:47:00,480 equiláteros, pero eso da igual 1005 00:47:00,480 --> 00:47:01,739 entonces cambian las condiciones 1006 00:47:01,739 --> 00:47:08,190 espera, espera, que sí 1007 00:47:08,190 --> 00:47:11,599 a ver 1008 00:47:11,599 --> 00:47:13,380 lo que nosotros queremos es esto 1009 00:47:13,380 --> 00:47:14,780 queremos 1010 00:47:14,780 --> 00:47:16,639 tenemos cuatro ramas 1011 00:47:16,639 --> 00:47:18,940 un programa que sale por cuatro sitios 1012 00:47:18,940 --> 00:47:21,860 ¿vale? cuatro condiciones asociadas 1013 00:47:21,860 --> 00:47:23,420 en función de cada una de ellas 1014 00:47:23,420 --> 00:47:26,019 o tres y la otra la que no es esa 1015 00:47:26,019 --> 00:47:27,639 me da igual, poner cuatro condiciones 1016 00:47:27,639 --> 00:47:29,599 que poner tres y la cuarta que sea 1017 00:47:29,599 --> 00:47:31,579 la que no es, o sea, el solo de forma 1018 00:47:31,579 --> 00:47:33,039 ¿vale? me da igual 1019 00:47:33,039 --> 00:47:35,099 vale, entonces el programa 1020 00:47:35,099 --> 00:47:37,079 que son cuatro ramas 1021 00:47:37,079 --> 00:47:39,219 con cuatro condiciones asociadas 1022 00:47:39,219 --> 00:47:41,400 o le ponemos el if, el seif 1023 00:47:41,400 --> 00:47:42,320 con las condiciones 1024 00:47:42,320 --> 00:47:45,139 o decís, ¿y no lo puedo hacer con un switch case? 1025 00:47:45,619 --> 00:47:47,219 vale, si lo hacemos con un switch case 1026 00:47:47,219 --> 00:47:48,619 tenemos aquí las cuatro ramas 1027 00:47:48,619 --> 00:47:51,079 pero la condición sí o sí 1028 00:47:51,079 --> 00:47:52,400 tiene que estar formulada 1029 00:47:52,400 --> 00:47:55,079 en función de una única variable, ahí no hay tutía 1030 00:47:55,079 --> 00:47:57,119 entonces en función de una única variable 1031 00:47:57,119 --> 00:47:59,360 y del valor de esa variable, te debes ir por una rama 1032 00:47:59,360 --> 00:47:59,820 o por otra 1033 00:47:59,820 --> 00:48:01,639 vamos a hacer una cosa 1034 00:48:01,639 --> 00:48:03,659 vamos a hacer una variable que 1035 00:48:03,659 --> 00:48:05,360 le asignemos 0 1036 00:48:05,360 --> 00:48:07,380 si se cumple esta condición 1037 00:48:07,380 --> 00:48:09,639 esta 1038 00:48:09,639 --> 00:48:11,199 1 si se cumple esta 1039 00:48:11,199 --> 00:48:12,840 2 si se cumple esta 1040 00:48:12,840 --> 00:48:14,320 y 3 si se cumple esa 1041 00:48:14,320 --> 00:48:16,300 en función de si es 0, 1, 2 y 3 1042 00:48:16,300 --> 00:48:19,480 en la única transformación que podemos hacer 1043 00:48:19,480 --> 00:48:21,619 ¿no? pues venga 1044 00:48:21,619 --> 00:48:23,000 vamos a hacerlo 1045 00:48:23,000 --> 00:48:26,360 ¿os acordáis del operador ternario de asignación condicionada? 1046 00:48:27,139 --> 00:48:28,619 si se cumple la condición 1047 00:48:28,619 --> 00:48:30,800 asignamos un valor, vamos a asignar 0 1048 00:48:30,800 --> 00:48:32,659 si se cumple otra 1049 00:48:32,659 --> 00:48:34,039 asignamos otro valor, 1 1050 00:48:34,039 --> 00:48:36,059 si se cumple otra, asignamos otro valor, 2 1051 00:48:36,059 --> 00:48:38,219 y si se cumple otra, asignamos 3 1052 00:48:38,219 --> 00:48:40,519 y ahora ponemos ya en los case 0, 1, 2 y 3 1053 00:48:40,519 --> 00:48:41,619 y ya lo tenemos 1054 00:48:41,619 --> 00:48:44,539 pero tenemos que hacer 1055 00:48:44,539 --> 00:48:46,099 esa asignación condicionada 1056 00:48:46,099 --> 00:48:48,380 vamos a hacerlo 1057 00:48:48,380 --> 00:48:50,019 primera condición 1058 00:48:50,019 --> 00:48:52,539 la tenemos en un boolean 1059 00:48:52,539 --> 00:48:53,619 es comodilla, vale 1060 00:48:53,619 --> 00:48:57,739 acordados del operador ternario 1061 00:48:57,739 --> 00:49:00,400 Si no es triángulo 1062 00:49:00,400 --> 00:49:03,139 Si no es triángulo 1063 00:49:03,139 --> 00:49:04,800 Le voy a asignar un cero 1064 00:49:04,800 --> 00:49:07,039 Y ese va a ser mi caso cero 1065 00:49:07,039 --> 00:49:08,980 Vale 1066 00:49:08,980 --> 00:49:11,619 En el caso de que 1067 00:49:11,619 --> 00:49:13,300 Esta condición no se dé 1068 00:49:13,300 --> 00:49:15,099 Abro la siguiente 1069 00:49:15,099 --> 00:49:16,659 Que es esta de aquí 1070 00:49:16,659 --> 00:49:22,309 Abro la siguiente 1071 00:49:22,309 --> 00:49:25,340 Vale 1072 00:49:25,340 --> 00:49:28,179 Me falta la interrogación esta 1073 00:49:28,179 --> 00:49:33,530 Que esta se cumple 1074 00:49:33,530 --> 00:49:35,550 Pues entonces 1075 00:49:35,550 --> 00:49:36,329 le asigno el 1 1076 00:49:36,329 --> 00:49:38,590 que no se cumple 1077 00:49:38,590 --> 00:49:41,429 voy a evaluar la siguiente condición, que es esta 1078 00:49:41,429 --> 00:49:44,389 control Z 1079 00:49:44,389 --> 00:49:47,510 la siguiente condición, que es esta 1080 00:49:47,510 --> 00:49:58,940 no sé si he cogido el 1081 00:49:58,940 --> 00:50:00,880 paréntesis 1082 00:50:00,880 --> 00:50:01,579 voy a 1083 00:50:01,579 --> 00:50:06,639 lado 3 1084 00:50:06,639 --> 00:50:09,159 me hago la pregunta 1085 00:50:09,159 --> 00:50:11,280 que se cumple 2, que no 3 1086 00:50:11,280 --> 00:50:13,679 vale, y me falta el 1087 00:50:13,679 --> 00:50:15,900 paréntesis 1088 00:50:15,900 --> 00:50:17,679 ala, ya lo tenemos 1089 00:50:17,679 --> 00:50:23,880 Y ahora aquí ponemos el 0, 1, 2 y 3 1090 00:50:23,880 --> 00:50:28,579 Ahora ya lo hemos reconvertido en una única variable 1091 00:50:28,579 --> 00:50:31,920 En función de si una variable vale 0 o me voy por aquí 1092 00:50:31,920 --> 00:50:33,320 Si vale 1 me voy por aquí 1093 00:50:33,320 --> 00:50:34,579 Si vale 2 me voy por aquí 1094 00:50:34,579 --> 00:50:35,539 Si vale 3 me voy por aquí 1095 00:50:35,539 --> 00:50:39,579 Y a esa variable yo le asigno 0, 1, 2 y 3 en una de las condiciones 1096 00:50:39,579 --> 00:50:43,320 Que no es triángulo, le asigno 0 1097 00:50:43,320 --> 00:50:46,380 Recordad el operador este ternario 1098 00:50:46,380 --> 00:50:50,380 que si es triángulo, o sea que esta es falsa 1099 00:50:50,380 --> 00:50:52,719 pues entonces abro condición otra vez 1100 00:50:52,719 --> 00:50:54,340 abro condición 1101 00:50:54,340 --> 00:50:55,639 que es equilátero 1102 00:50:55,639 --> 00:50:56,780 le asigno 1 1103 00:50:56,780 --> 00:50:58,340 que no lo es 1104 00:50:58,340 --> 00:51:00,239 abro condición otra vez 1105 00:51:00,239 --> 00:51:02,500 que es isósceles 1106 00:51:02,500 --> 00:51:04,659 le asigno 2 1107 00:51:04,659 --> 00:51:06,320 que no lo es, le asigno 3 1108 00:51:06,320 --> 00:51:09,860 luego, todo lo que he puesto aquí 1109 00:51:09,860 --> 00:51:11,960 en realidad es una expresión 1110 00:51:11,960 --> 00:51:14,760 que se evalúa en una única variable 1111 00:51:14,760 --> 00:51:16,579 que es o 0 o 1 o 2 o 3 1112 00:51:16,579 --> 00:51:18,420 en función de la condición que yo le quiera poner 1113 00:51:18,420 --> 00:51:20,199 pero claro 1114 00:51:20,199 --> 00:51:21,320 esto 1115 00:51:21,320 --> 00:51:23,579 es más confuso 1116 00:51:23,579 --> 00:51:26,760 es más confuso que el if 1117 00:51:26,760 --> 00:51:28,880 pero lo importante es que nos quede 1118 00:51:28,880 --> 00:51:30,719 claro que el switch case lo usamos 1119 00:51:30,719 --> 00:51:32,699 cuando queremos decidir en función de una 1120 00:51:32,699 --> 00:51:33,539 única variable 1121 00:51:33,539 --> 00:51:36,800 aquí yo decido 1122 00:51:36,800 --> 00:51:38,780 en función de 3, de lado 1, lado 2 y lado 3 1123 00:51:38,780 --> 00:51:39,679 le decido en función de 3 1124 00:51:39,679 --> 00:51:42,340 entonces para convertirlo a una única variable 1125 00:51:42,340 --> 00:51:44,159 lo acabo de convertir 1126 00:51:44,159 --> 00:51:46,159 a una única variable que se convierte 1127 00:51:46,159 --> 00:51:48,219 en 0, en 1, en 2 o en 3 1128 00:51:48,219 --> 00:51:49,960 dentro de la condición, entonces ahora ya sí 1129 00:51:49,960 --> 00:51:51,440 ¿vale? 1130 00:51:52,159 --> 00:51:54,119 pero si la decisión no es en función de una única 1131 00:51:54,119 --> 00:51:56,059 variable, sino que es una condición que involucra 1132 00:51:56,059 --> 00:51:58,440 varias, pues plantaré un if el save 1133 00:51:58,440 --> 00:52:06,860 sobre todo de esto, lo interesante es que 1134 00:52:06,860 --> 00:52:08,679 entendáis esto que he hecho yo aquí, porque es otra vez 1135 00:52:08,679 --> 00:52:11,079 practicar lo de siempre, es practicar este operador 1136 00:52:11,079 --> 00:52:13,039 entonces esto es una expresión 1137 00:52:13,039 --> 00:52:15,059 y las expresiones se supone 1138 00:52:15,059 --> 00:52:16,599 que ya no son cómodas, esto es una expresión 1139 00:52:16,599 --> 00:52:18,920 esta es una expresión que se evalúa 1140 00:52:18,920 --> 00:52:21,440 con 0 o con 1 1141 00:52:21,440 --> 00:52:23,360 o con 2 o con 3, es una expresión 1142 00:52:23,360 --> 00:52:27,239 bueno, pues en función del valor de esa expresión 1143 00:52:27,239 --> 00:52:28,179 lo que yo pongo aquí 1144 00:52:28,179 --> 00:52:30,639 pues hace esto, hace esto, hace esto y hace esto 1145 00:52:30,639 --> 00:52:35,920 bueno, vamos a parar aquí un momentito