1 00:00:01,010 --> 00:00:11,669 Vale, pues entonces, uno le está enunciado, como siempre, y primero se asegura que lo entiende. 2 00:00:11,669 --> 00:00:14,890 Entonces, todo el mundo sabe lo que es un número primo, ¿verdad? 3 00:00:15,609 --> 00:00:20,410 Un número primo es un número que solo es divisible por sí mismo y la unidad. 4 00:00:20,730 --> 00:00:21,530 Eso está claro, ¿no? 5 00:00:23,449 --> 00:00:28,030 Bueno, pues entonces, el programa, dado un número, tiene que saber si es primo o no. 6 00:00:28,030 --> 00:00:30,449 entonces, si quitamos 7 00:00:30,449 --> 00:00:32,969 la restricción de que tenga que ser menor de 10 8 00:00:32,969 --> 00:00:34,409 la hemos liado 9 00:00:34,409 --> 00:00:36,570 porque entonces uno ahora ya que ha entendido 10 00:00:36,570 --> 00:00:37,509 lo que es un número primo 11 00:00:37,509 --> 00:00:39,549 y se pone a pensar cómo hacerlo 12 00:00:39,549 --> 00:00:41,549 pues entonces 13 00:00:41,549 --> 00:00:43,210 empieza a pensar, vale 14 00:00:43,210 --> 00:00:45,729 para ver si el número es primo tengo que 15 00:00:45,729 --> 00:00:47,810 dividir, si el número es n 16 00:00:47,810 --> 00:00:49,649 tengo que dividirlo entre n-1 17 00:00:49,649 --> 00:00:51,609 y luego entre n-2 18 00:00:51,609 --> 00:00:53,829 y entre n-3, entre n-4 19 00:00:53,829 --> 00:00:54,890 hasta que llegue a 2 20 00:00:54,890 --> 00:00:57,750 y si ninguna de las divisiones 21 00:00:57,750 --> 00:01:02,310 Eso es lo que habría que plantearse como hacerlo, ¿verdad? 22 00:01:02,689 --> 00:01:05,549 Pero claro, el problema es que si la cantidad de divisiones que hay que hacer cambia. 23 00:01:06,150 --> 00:01:11,349 Si el número es 32, habrá que hacer 30 divisiones, desde 31 hasta 1. 24 00:01:11,349 --> 00:01:17,650 Si el número es 100, habrá que hacer 98 divisiones, desde 99 hasta 2. 25 00:01:18,469 --> 00:01:23,250 Entonces, hay que hacer un conjunto de sentencias un número variable de veces, 26 00:01:23,370 --> 00:01:25,790 que a priori no sabemos, pues eso precisamente son bucles. 27 00:01:25,790 --> 00:01:28,549 un conjunto de sentencias que se hacen varias veces 28 00:01:28,549 --> 00:01:29,310 eso es un bucle 29 00:01:29,310 --> 00:01:32,829 como no sabemos hacer un bucle, no podemos hacer este programa 30 00:01:32,829 --> 00:01:34,750 si quitamos la restricción de que sea menor de 10 31 00:01:34,750 --> 00:01:35,989 no podemos hacerlo todavía 32 00:01:35,989 --> 00:01:38,689 por eso está añadida la restricción de que sea menor de 10 33 00:01:38,689 --> 00:01:40,370 entonces con esa restricción ya podemos pensar 34 00:01:40,370 --> 00:01:42,730 ¿cómo puedo yo saber si un número 35 00:01:42,730 --> 00:01:45,189 que sé que el usuario 36 00:01:45,189 --> 00:01:46,909 lo va a hacer bien 37 00:01:46,909 --> 00:01:48,810 y va a meterlo a menor de 10 partiendo de esa restricción 38 00:01:48,810 --> 00:01:49,390 es primo? 39 00:01:50,430 --> 00:01:52,069 bueno, pues es que lo tenemos muy fácil 40 00:01:52,069 --> 00:01:54,409 ¿cuáles son los números primos menores de 10? 41 00:01:54,409 --> 00:01:58,230 Pues el 2, el 3, el 5 y el 7 42 00:01:58,230 --> 00:02:00,450 ¿No? Pues ya está 43 00:02:00,450 --> 00:02:02,510 Si el número es uno de esos es primo 44 00:02:02,510 --> 00:02:03,930 Y se acabó 45 00:02:03,930 --> 00:02:05,370 Entonces 46 00:02:05,370 --> 00:02:08,590 Ahora se trata de poner la condición 47 00:02:08,590 --> 00:02:10,569 Y ya, bueno, leemos el numerito 48 00:02:10,569 --> 00:02:27,750 Leemos el número 49 00:02:27,750 --> 00:02:39,030 Vale, pues venga 50 00:02:39,030 --> 00:02:39,889 A ver, Adrián 51 00:02:39,889 --> 00:02:41,770 Digo Adrián, joder con Adrián 52 00:02:41,770 --> 00:02:42,569 Andrés 53 00:02:42,569 --> 00:02:45,389 ¿Cómo pongo la condición? 54 00:02:45,389 --> 00:02:58,419 ¿Para qué pones esa condición? 55 00:03:02,199 --> 00:03:04,219 Pero si n es menor que 10, entonces aquí ¿qué hago? 56 00:03:07,699 --> 00:03:09,259 Esta condición que pongo 57 00:03:09,259 --> 00:03:11,080 Yo he puesto 58 00:03:11,080 --> 00:03:11,979 Tú has puesto 59 00:03:11,979 --> 00:03:14,960 n es igual a 2 60 00:03:14,960 --> 00:03:17,379 Para que sea el primo 61 00:03:17,379 --> 00:03:18,879 Luego n es igual a 3 62 00:03:18,879 --> 00:03:19,639 ¿Cómo luego n? 63 00:03:21,039 --> 00:03:21,879 ¿Qué más? Dígame 64 00:03:21,879 --> 00:03:23,460 Luego las dos estas de o 65 00:03:23,460 --> 00:03:24,120 Eso sí 66 00:03:24,120 --> 00:03:26,080 n es igual a 3 67 00:03:26,080 --> 00:03:45,090 Bueno, para que no se alargue tanto, voy a quitar los... 68 00:03:45,090 --> 00:03:48,330 Bueno, no lo voy a quitar, que es que así tan apiñado esto no se debe hacer nunca. 69 00:03:53,710 --> 00:03:54,729 Vale, pues ya está. 70 00:04:06,969 --> 00:04:08,610 Vale, y un else si uno quiere. 71 00:04:24,170 --> 00:04:24,430 Vale. 72 00:04:25,149 --> 00:04:26,649 Bueno, está claro lo que hemos hecho aquí, ¿no? 73 00:04:27,089 --> 00:04:28,189 Entonces, primera cosa. 74 00:04:29,449 --> 00:04:35,230 Como veis, esta es la primera vez que yo he hecho un if que no tiene else asociado. 75 00:04:35,230 --> 00:04:38,110 O sea, este if tiene dentro una única sentencia. 76 00:04:39,189 --> 00:04:41,829 Que es esta, porque esto es una única sentencia. 77 00:04:41,829 --> 00:04:44,350 Es una sentencia compleja porque es una sentencia if, pero es una sola 78 00:04:44,350 --> 00:04:46,209 Entonces, como es una sola 79 00:04:46,209 --> 00:04:48,449 Yo puedo aquí no poner llaves 80 00:04:48,449 --> 00:04:50,430 Si las pongo no pasa nada 81 00:04:50,430 --> 00:04:51,310 No sobran 82 00:04:51,310 --> 00:04:53,970 Las puedo poner y no pasa nada 83 00:04:53,970 --> 00:04:56,329 Pero puedo no ponerlas 84 00:04:56,329 --> 00:04:58,029 ¿Vale? Podría no ponerlas porque 85 00:04:58,029 --> 00:05:00,889 Lo que hay dentro es una única sentencia 86 00:05:00,889 --> 00:05:02,589 Sentencia compleja 87 00:05:02,589 --> 00:05:04,829 Sentencia if, pero es una única sentencia 88 00:05:04,829 --> 00:05:05,689 ¿Vale? 89 00:05:06,009 --> 00:05:08,589 Igual que aquí, dentro de a su vez el if anidado 90 00:05:08,589 --> 00:05:09,569 Tampoco he puesto llaves 91 00:05:09,569 --> 00:05:11,910 Porque lo que tiene dentro es una única sentencia 92 00:05:11,910 --> 00:05:13,110 ¿Vale? Solo una 93 00:05:13,110 --> 00:05:14,350 Primera cosa 94 00:05:14,350 --> 00:05:15,930 Segunda cosa 95 00:05:15,930 --> 00:05:20,350 Ayer todos los if que poníamos tenían un else 96 00:05:20,350 --> 00:05:23,389 ¿Vale? Pues el else no es obligatorio 97 00:05:23,389 --> 00:05:27,149 Yo no hace falta que especifique 98 00:05:27,149 --> 00:05:30,769 ¿Qué hago en el caso de que la condición no se cumpla? 99 00:05:31,230 --> 00:05:33,569 A lo mejor en el caso de que la condición no se cumpla 100 00:05:33,569 --> 00:05:34,470 Yo no quiero hacer nada 101 00:05:34,470 --> 00:05:36,189 En ese caso 102 00:05:36,189 --> 00:05:39,029 No hace falta que lo deje así en blanco 103 00:05:39,029 --> 00:05:42,310 Simplemente no pongo el ELSI y se acabó 104 00:05:42,310 --> 00:05:44,329 ¿Vale? 105 00:05:45,069 --> 00:05:46,290 Podría dejarlo así 106 00:05:46,290 --> 00:05:48,569 Y esto sería idéntico a haber puesto esto 107 00:05:48,569 --> 00:05:49,649 Uy, perdona, esto no 108 00:05:49,649 --> 00:05:54,389 Idéntico a haber puesto esto 109 00:05:54,389 --> 00:05:55,069 Idéntico 110 00:05:55,069 --> 00:05:56,149 ¿Vale? 111 00:05:56,529 --> 00:05:58,170 Eso es como si 112 00:05:58,170 --> 00:06:04,240 ¿Vale? En mi diagrama de flujo 113 00:06:04,240 --> 00:06:06,819 En mi diagrama de flujo famoso 114 00:06:06,819 --> 00:06:09,040 Esta es mi condición 115 00:06:09,040 --> 00:06:10,819 Pues la rama del SI 116 00:06:10,819 --> 00:06:20,269 La rama del SI hace lo que tenga que hacer 117 00:06:20,269 --> 00:06:23,589 Y la rama del no, no hace nada 118 00:06:23,589 --> 00:06:24,889 Pero la rama del no existe 119 00:06:24,889 --> 00:06:27,110 Y luego esto se junta por aquí abajo 120 00:06:27,110 --> 00:06:28,589 Y el programa continúa, así 121 00:06:28,589 --> 00:06:30,029 ¿Vale? Viene por aquí 122 00:06:30,029 --> 00:06:33,470 Esto es un if sin else 123 00:06:33,470 --> 00:06:35,009 Un if sin else 124 00:06:35,009 --> 00:06:37,490 Que la condición que hay aquí se cumple 125 00:06:37,490 --> 00:06:39,089 Pues hago esto 126 00:06:39,089 --> 00:06:40,769 Que no se cumple, no hago nada 127 00:06:40,769 --> 00:06:43,269 Y esta estructura se puede poner 128 00:06:43,269 --> 00:06:44,149 ¿Vale? 129 00:06:44,750 --> 00:06:46,970 Y entonces, si estamos en esa situación 130 00:06:46,970 --> 00:06:49,009 Un if que en la rama del no 131 00:06:49,009 --> 00:06:49,889 No se hace nada 132 00:06:49,889 --> 00:06:52,009 Eso se programa 133 00:06:52,009 --> 00:06:55,089 No poniéndole ese directamente 134 00:06:55,089 --> 00:06:55,769 No poniéndolo 135 00:06:55,769 --> 00:06:59,709 ¿Vale? En lugar de ponerlo con llaves vacías 136 00:06:59,709 --> 00:07:00,350 No ponerlo 137 00:07:00,350 --> 00:07:03,290 Pero si lo pongo y no quiero hacer nada 138 00:07:03,290 --> 00:07:04,670 Con llaves vacías, por supuesto 139 00:07:04,670 --> 00:07:05,750 Porque si no pongo las llaves 140 00:07:05,750 --> 00:07:07,529 Y luego mi programa sigue por aquí 141 00:07:07,529 --> 00:07:08,550 Haciendo cualquier cosa 142 00:07:08,550 --> 00:07:10,889 Por ejemplo, adiós o lo que sea 143 00:07:10,889 --> 00:07:22,060 Cuidado, obviamente 144 00:07:22,060 --> 00:07:24,180 Si yo no la pongo, las llaves vacías 145 00:07:24,180 --> 00:07:25,920 Ya sabéis lo que significa eso 146 00:07:25,920 --> 00:07:27,920 Significa que como este él se no tiene llave 147 00:07:27,920 --> 00:07:30,259 La única sentencia que va dentro 148 00:07:30,259 --> 00:07:31,920 Es la que va inmediatamente después 149 00:07:31,920 --> 00:07:33,860 Y ya a partir de ahí 150 00:07:33,860 --> 00:07:35,079 Iría el resto del programa 151 00:07:35,079 --> 00:07:37,600 Entonces esto es 152 00:07:37,600 --> 00:07:39,379 En la rama del no 153 00:07:39,379 --> 00:07:40,300 Hace esto 154 00:07:40,300 --> 00:07:42,839 No, no quiero eso 155 00:07:42,839 --> 00:07:44,300 Quiero una rama del no vacía 156 00:07:44,300 --> 00:07:45,759 Pues si quiero una rama del no vacía 157 00:07:45,759 --> 00:07:49,180 Así sí, así sí es una rama del no vacía 158 00:07:49,180 --> 00:07:51,339 Y luego ya el programa continúa por ahí abajo 159 00:07:51,339 --> 00:07:52,040 ¿Vale? 160 00:07:52,439 --> 00:07:53,420 Pero repito 161 00:07:53,420 --> 00:07:56,319 si en la rama del no coincide 162 00:07:56,319 --> 00:07:57,660 que no quiero yo hacer nada 163 00:07:57,660 --> 00:07:59,939 que no quiero hacer nada, mi if es este 164 00:07:59,939 --> 00:08:01,959 pues entonces 165 00:08:01,959 --> 00:08:03,879 puedo no ponerle el se 166 00:08:03,879 --> 00:08:06,519 y me queda más compacto 167 00:08:06,519 --> 00:08:06,759 ¿vale? 168 00:08:08,339 --> 00:08:10,040 el if hay que ponerlo siempre 169 00:08:10,040 --> 00:08:12,259 la rama del si hay que ponerla 170 00:08:12,259 --> 00:08:14,199 siempre, o sea si yo tengo 171 00:08:14,199 --> 00:08:14,579 un if 172 00:08:14,579 --> 00:08:19,180 yo tengo mi diagrama de flujo 173 00:08:19,180 --> 00:08:20,720 y resulta que mi 174 00:08:20,720 --> 00:08:26,939 lo que yo estoy programando ahora es esto 175 00:08:26,939 --> 00:08:28,920 que la condición se cumple 176 00:08:28,920 --> 00:08:30,980 pues entonces en ese caso 177 00:08:30,980 --> 00:08:32,460 en el caso de que se cumpla no hagas nada 178 00:08:32,460 --> 00:08:33,179 y terminas 179 00:08:33,179 --> 00:08:35,620 que la condición no se cumple 180 00:08:35,620 --> 00:08:37,100 pues en ese caso sí 181 00:08:37,100 --> 00:08:38,980 haz algo, lo que sea 182 00:08:38,980 --> 00:08:41,059 y luego ya terminas 183 00:08:41,059 --> 00:08:44,220 que yo he hecho un diagrama de flujo 184 00:08:44,220 --> 00:08:45,279 y he llegado a este punto 185 00:08:45,279 --> 00:08:47,580 una condición, la que sea 186 00:08:47,580 --> 00:08:49,940 si se cumple no hago nada 187 00:08:49,940 --> 00:08:51,559 y si no se cumple lo hago 188 00:08:51,559 --> 00:08:53,620 Pues programar esto 189 00:08:53,620 --> 00:08:54,799 Si que me obliga a hacer el if 190 00:08:54,799 --> 00:08:56,240 Si yo quisiera programar esto 191 00:08:56,240 --> 00:08:57,860 Como el if no lo puedo eliminar 192 00:08:57,860 --> 00:08:59,480 Tendría que programarlo así 193 00:08:59,480 --> 00:09:02,580 En el caso de que la condición se cumpla 194 00:09:02,580 --> 00:09:04,620 Poniendo aquí la condición 195 00:09:04,620 --> 00:09:05,360 Que fuera 196 00:09:05,360 --> 00:09:07,259 Pues vacío 197 00:09:07,259 --> 00:09:09,240 Esto si que lo tengo que poner si o si 198 00:09:09,240 --> 00:09:11,360 Y en el caso de que no se cumpla 199 00:09:11,360 --> 00:09:14,279 Pues ahora ya si que pondría lo que hay aquí debajo 200 00:09:14,279 --> 00:09:14,919 Lo que hay aquí 201 00:09:14,919 --> 00:09:16,139 Ya si que lo pondría 202 00:09:16,139 --> 00:09:21,139 Si lo que yo quiero programar es esto 203 00:09:21,139 --> 00:09:22,500 Es este if 204 00:09:22,500 --> 00:09:24,100 Que la rama del sí es la vacía 205 00:09:24,100 --> 00:09:26,279 Y la del no es la que tiene algo 206 00:09:26,279 --> 00:09:27,740 Pues tengo que hacerlo así 207 00:09:27,740 --> 00:09:29,620 El if se queda vacío 208 00:09:29,620 --> 00:09:30,879 Y en el else lleva algo 209 00:09:30,879 --> 00:09:33,379 ¿Vale? 210 00:09:33,779 --> 00:09:35,159 Lo que pasa es que esto es feo 211 00:09:35,159 --> 00:09:37,639 Programar esto así, uno te diría 212 00:09:37,639 --> 00:09:40,679 Oye, cámbialo, pon la condición al revés 213 00:09:40,679 --> 00:09:42,399 Pon la condición al revés 214 00:09:42,399 --> 00:09:44,659 Pon la negada, justo la negada 215 00:09:44,659 --> 00:09:47,019 Y así la rama del sí es la que tiene algo dentro 216 00:09:47,019 --> 00:09:48,000 Y te quitas el else 217 00:09:48,000 --> 00:09:48,639 ¿No? 218 00:09:48,639 --> 00:09:51,799 O sea, encontrarse esto es muy feo 219 00:09:51,799 --> 00:09:53,639 Hace lo que tiene que hacer 220 00:09:53,639 --> 00:09:55,379 Si la condición se cumple, no hace nada 221 00:09:55,379 --> 00:09:57,360 Y si no se cumple, hace esto, ¿verdad? 222 00:09:58,080 --> 00:09:59,580 Hace lo que tiene que hacer, que es esto de aquí 223 00:09:59,580 --> 00:10:01,360 Es esta idea, si se cumple, hace esto 224 00:10:01,360 --> 00:10:02,039 Y si no, hace esto 225 00:10:02,039 --> 00:10:04,399 Pero hombre, el programa queda muy feo 226 00:10:04,399 --> 00:10:06,700 Pues entonces, aquí tendría mucho más sentido 227 00:10:06,700 --> 00:10:09,899 Obviamente, transformar el código 228 00:10:09,899 --> 00:10:10,799 Transformarlo 229 00:10:10,799 --> 00:10:13,500 Poner la negada de la condición 230 00:10:13,500 --> 00:10:14,580 Poner la negada 231 00:10:14,580 --> 00:10:16,480 Y meter entonces ahora ya 232 00:10:16,480 --> 00:10:18,720 esta sentencia aquí dentro 233 00:10:18,720 --> 00:10:20,379 y ya pasar del else 234 00:10:20,379 --> 00:10:21,899 ahora ya sí 235 00:10:21,899 --> 00:10:24,700 si no se cumple esta condición 236 00:10:24,700 --> 00:10:26,340 si no se cumple, haz esto 237 00:10:26,340 --> 00:10:28,720 y esto es una forma más compacta 238 00:10:28,720 --> 00:10:30,740 obviamente, de expresar esta idea 239 00:10:30,740 --> 00:10:31,360 de aquí abajo 240 00:10:31,360 --> 00:10:34,279 si no se cumple esto, haz esto de aquí 241 00:10:34,279 --> 00:10:35,539 si no se cumple 242 00:10:35,539 --> 00:10:38,659 mucho mejor que hacer si se cumple 243 00:10:38,659 --> 00:10:40,200 vacío y si no se cumple esto 244 00:10:40,200 --> 00:10:41,220 mucho mejor negarla 245 00:10:41,220 --> 00:10:43,539 si no se cumple, ¿vale? 246 00:10:44,039 --> 00:10:46,139 o sea, recordad este operador 247 00:10:46,139 --> 00:10:48,840 booleano, que ya hemos estudiado 248 00:10:48,840 --> 00:10:49,399 booleano 249 00:10:49,399 --> 00:10:51,700 que significa 250 00:10:51,700 --> 00:10:54,120 el negado de la condición que hay después 251 00:10:54,120 --> 00:10:56,139 el negado, entonces si yo la niego 252 00:10:56,139 --> 00:11:00,519 pues en la rama del sí haré 253 00:11:00,519 --> 00:11:02,240 lo que haría en la rama del no 254 00:11:02,240 --> 00:11:04,220 si tuviera la condición sin negar 255 00:11:04,220 --> 00:11:05,840 ¿vale? 256 00:11:06,080 --> 00:11:09,000 entonces de nuevo, un mismo código se puede programar de muchas maneras 257 00:11:09,000 --> 00:11:11,340 pero bueno, la idea es que quede lo más bonito posible 258 00:11:11,340 --> 00:11:13,759 ¿vale? 259 00:11:14,879 --> 00:11:16,100 luego eso por un lado 260 00:11:16,100 --> 00:11:17,740 Voy a ponerlo aquí 261 00:11:17,740 --> 00:11:20,840 El else es opcional 262 00:11:20,840 --> 00:11:24,039 Si no se hace nada 263 00:11:24,039 --> 00:11:28,470 En esa rama 264 00:11:28,470 --> 00:11:29,889 Vale, eso primera cosa 265 00:11:29,889 --> 00:11:31,450 Segunda cosa 266 00:11:31,450 --> 00:11:33,570 If anidados 267 00:11:33,570 --> 00:11:36,590 Él ha querido además 268 00:11:36,590 --> 00:11:38,610 Hacer solo esta operación 269 00:11:38,610 --> 00:11:39,549 Si n es menor que 10 270 00:11:39,549 --> 00:11:40,850 Porque si n es mayor que 10 271 00:11:40,850 --> 00:11:42,570 Pues no tiene sentido hacerla 272 00:11:42,570 --> 00:11:43,990 Vale, bueno, vale, pues no pasa nada 273 00:11:43,990 --> 00:11:46,350 Eso ha implicado hacer un if anidado 274 00:11:46,350 --> 00:11:48,809 ¿verdad? primero verificamos 275 00:11:48,809 --> 00:11:50,809 que el número que hemos introducido es menor que 10 276 00:11:50,809 --> 00:11:51,769 primero lo verificamos 277 00:11:51,769 --> 00:11:54,730 y cuando ya hemos verificado que sí, que cumple la condición 278 00:11:54,730 --> 00:11:57,110 que nosotros necesitamos para que el programa tenga sentido 279 00:11:57,110 --> 00:11:58,289 para que tenga sentido 280 00:11:58,289 --> 00:12:00,950 entonces ya comprobamos a ver si es uno de esos 281 00:12:00,950 --> 00:12:02,850 ¿vale? pues para programar 282 00:12:02,850 --> 00:12:04,450 esa idea he usado if anidados 283 00:12:04,450 --> 00:12:05,409 ¿vale? 284 00:12:07,809 --> 00:12:09,129 los if anidados 285 00:12:09,129 --> 00:12:10,970 en la mayoría de los casos 286 00:12:10,970 --> 00:12:12,850 también son feos, esto hace lo que 287 00:12:12,850 --> 00:12:14,529 tiene que hacer, está claro, pero son feos 288 00:12:14,529 --> 00:12:17,610 ¿Cómo desanidaríais este if? 289 00:12:17,990 --> 00:12:19,870 ¿Cómo podríais cambiar el código? 290 00:12:20,070 --> 00:12:21,950 Cambiarlo para que hiciera lo mismo 291 00:12:21,950 --> 00:12:23,889 Pero solo tuviera un if 292 00:12:23,889 --> 00:12:27,480 ¿Cómo lo podríais cambiar? 293 00:12:29,220 --> 00:12:31,580 Para que no tuviera dos if anidados 294 00:12:31,580 --> 00:12:41,529 Venga, que alguien me diga algo 295 00:12:41,529 --> 00:12:44,769 Es decir, cambiar este código 296 00:12:44,769 --> 00:12:45,789 Para que haga lo mismo 297 00:12:45,789 --> 00:12:47,470 Pero no tenga 298 00:12:47,470 --> 00:13:03,110 Un if 299 00:13:03,110 --> 00:13:07,529 sí, lo que quieres decir es 300 00:13:07,529 --> 00:13:08,750 vamos a meter 301 00:13:08,750 --> 00:13:10,950 esta condición y esta 302 00:13:10,950 --> 00:13:12,889 en la misma condición 303 00:13:12,889 --> 00:13:14,789 este código lo que hace es 304 00:13:14,789 --> 00:13:16,490 si n es menor que 10 305 00:13:16,490 --> 00:13:18,509 y además de ser menor que 10 306 00:13:18,509 --> 00:13:19,570 una vez que se ha metido en el if 307 00:13:19,570 --> 00:13:22,950 cumple esto, entonces es primo 308 00:13:22,950 --> 00:13:25,370 pues eso lo puede expresar como una única condición 309 00:13:25,370 --> 00:13:25,649 ¿verdad? 310 00:13:26,070 --> 00:13:28,009 si n es menor que 10 y 311 00:13:28,009 --> 00:13:30,990 n es igual a 2 o n es igual a 3 312 00:13:30,990 --> 00:13:31,909 Pues entonces es primo 313 00:13:31,909 --> 00:13:33,450 Lo podría meter en una condición, ¿verdad? 314 00:13:35,070 --> 00:13:36,750 Por ejemplo, vamos a ponerlo aquí 315 00:13:36,750 --> 00:13:50,980 100 es menor que 10 316 00:13:50,980 --> 00:13:53,500 Y además de ser menor que 10 317 00:13:53,500 --> 00:13:58,159 Uy, perdón 318 00:13:58,159 --> 00:14:00,559 Y además de ser menor que 10 319 00:14:00,559 --> 00:14:02,500 Resulta que cumple todo esto 320 00:14:02,500 --> 00:14:14,970 ¿Vale? 321 00:14:14,990 --> 00:14:16,450 Aquí para evitar ambigüedad 322 00:14:16,450 --> 00:14:18,990 Sí que tiene sentido ya poner el paréntesis 323 00:14:18,990 --> 00:14:20,990 Porque aquí estamos haciendo el AND de dos cosas 324 00:14:20,990 --> 00:14:22,289 De esta condición 325 00:14:22,289 --> 00:14:23,929 Y de esta otra 326 00:14:23,929 --> 00:14:26,529 De las dos en conjunto 327 00:14:26,529 --> 00:14:28,429 Si no ponemos el paréntesis 328 00:14:28,429 --> 00:14:30,629 Si no lo ponemos 329 00:14:30,629 --> 00:14:32,309 Esto haría primero este AND 330 00:14:32,309 --> 00:14:34,710 Y luego haría este OR 331 00:14:34,710 --> 00:14:35,889 Este OR, este OR 332 00:14:35,889 --> 00:14:37,870 ¿Vale? Entonces para evitar ambigüedad 333 00:14:37,870 --> 00:14:40,889 Es el AND lógico de 334 00:14:40,889 --> 00:14:43,350 Esta condición y esta condición 335 00:14:43,350 --> 00:14:45,129 Si se cumplen 336 00:14:45,129 --> 00:14:46,549 Simultáneamente ambas 337 00:14:46,549 --> 00:14:48,549 Entonces ahora ya podemos poner 338 00:14:48,549 --> 00:14:50,529 Primo 339 00:14:50,529 --> 00:15:18,620 Es que no quiero que evalúe el resto 340 00:15:18,620 --> 00:15:20,159 A ver, siempre, a ver 341 00:15:20,159 --> 00:15:21,679 Es que lo de dos barras y una 342 00:15:21,679 --> 00:15:24,360 Yo no sé si os da un poco de confusión 343 00:15:24,360 --> 00:15:25,179 Vamos a ver, no quiero 344 00:15:25,179 --> 00:15:28,159 Dos barras 345 00:15:28,159 --> 00:15:29,940 Dos barras o una barra 346 00:15:29,940 --> 00:15:32,379 Tú en cualquier caso vas a hacer el or 347 00:15:32,379 --> 00:15:34,299 De las dos cláusulas que haya 348 00:15:34,299 --> 00:15:35,419 Siempre 349 00:15:35,419 --> 00:15:37,600 Y el resultado final va a ser siempre el mismo 350 00:15:37,600 --> 00:15:39,840 Da igual que haya una barra o dos, va a ser siempre el mismo 351 00:15:39,840 --> 00:15:42,539 Pero ¿cuál es la diferencia? 352 00:15:42,779 --> 00:15:43,960 Si tú pones dos barras 353 00:15:43,960 --> 00:15:45,539 O sea, a ver 354 00:15:45,539 --> 00:15:48,159 Tú imagínate que tienes el or de dos condiciones 355 00:15:48,159 --> 00:15:49,419 ¿Vale? 356 00:15:50,019 --> 00:15:51,139 Tienes el or de dos condiciones 357 00:15:51,139 --> 00:15:53,139 Por ejemplo, aquí 358 00:15:53,139 --> 00:15:54,740 Vamos a ver 359 00:15:54,740 --> 00:15:58,220 Si lo terminamos de entender claro 360 00:15:58,220 --> 00:15:59,860 Imagínate que tenemos aquí una condición 361 00:15:59,860 --> 00:16:04,940 Sí, pero vamos a dejarlo más claro para que sea parte 362 00:16:04,940 --> 00:16:07,379 No, boolean b igual 363 00:16:07,379 --> 00:16:09,960 n igual a 7 364 00:16:09,960 --> 00:16:11,600 O 365 00:16:11,600 --> 00:16:16,200 n igual a 5, por ejemplo 366 00:16:16,200 --> 00:16:18,120 Y aquí vamos a leer el numerito 367 00:16:18,120 --> 00:16:20,100 n igual a 368 00:16:20,100 --> 00:16:25,899 scan.next.in 369 00:16:25,899 --> 00:16:26,320 vale 370 00:16:26,320 --> 00:16:31,070 vamos a hacer 371 00:16:31,070 --> 00:16:34,710 los dos booleanos 372 00:16:34,710 --> 00:16:36,309 con una barra y con dos barras 373 00:16:36,309 --> 00:16:37,169 b1 y b2 374 00:16:37,169 --> 00:16:39,950 vale, estas son 375 00:16:39,950 --> 00:16:42,009 mis dos alternativas, ¿no? 376 00:16:42,230 --> 00:16:43,529 poner una barra o poner las dos 377 00:16:43,529 --> 00:16:46,809 vale, pues tanto el booleano 378 00:16:46,809 --> 00:16:48,090 1 como el booleano 2 379 00:16:48,090 --> 00:16:50,669 tanto el booleano, van a hacer el or 380 00:16:50,669 --> 00:16:52,649 de las dos, entonces el booleano 381 00:16:52,649 --> 00:16:54,730 b1 va a ser true 382 00:16:54,730 --> 00:16:57,850 Si es igual a 7 o si es igual a 5 383 00:16:57,850 --> 00:16:59,809 Y el booleano 2 igual 384 00:16:59,809 --> 00:17:01,149 Ahí no hay ningún cambio 385 00:17:01,149 --> 00:17:03,970 Va a ser true si n es igual a 7 386 00:17:03,970 --> 00:17:05,470 O si n es igual a 5 387 00:17:05,470 --> 00:17:06,529 Sobre eso no hay ningún cambio 388 00:17:06,529 --> 00:17:09,750 Ahora entramos ya en cuanto a la definición del or 389 00:17:09,750 --> 00:17:11,809 Ahora entramos ya en modo ejecución 390 00:17:11,809 --> 00:17:13,789 Ahora ya vamos a un caso real 391 00:17:13,789 --> 00:17:15,269 Vamos a un caso real 392 00:17:15,269 --> 00:17:17,289 Y ahora ya tenemos un número real 393 00:17:17,289 --> 00:17:19,890 n, 7 por ejemplo 394 00:17:19,890 --> 00:17:21,930 Vale, pues entonces la máquina virtual 395 00:17:21,930 --> 00:17:23,549 Coge el 7 y se pone a evaluar 396 00:17:23,549 --> 00:17:25,710 n igual a 7, sí 397 00:17:25,710 --> 00:17:27,809 ah, pues entonces me da igual 398 00:17:27,809 --> 00:17:29,009 lo que ocurra después 399 00:17:29,009 --> 00:17:31,789 porque el or con que uno solo 400 00:17:31,789 --> 00:17:32,630 se atruya es true 401 00:17:32,630 --> 00:17:36,089 entonces le da igual lo que ocurra después 402 00:17:36,089 --> 00:17:37,329 no lo evalúa 403 00:17:37,329 --> 00:17:39,990 no lo evalúa porque ya sabe que el resultado final es true 404 00:17:39,990 --> 00:17:41,549 cuando pones las dos barras 405 00:17:41,549 --> 00:17:43,849 ¿vale? ¿qué haría el boolean b2? 406 00:17:44,369 --> 00:17:45,329 coge el numerito 407 00:17:45,329 --> 00:17:46,849 n igual a 7, sí 408 00:17:46,849 --> 00:17:49,750 ya sé que el resultado es true, pero como me han puesto una barra 409 00:17:49,750 --> 00:17:51,450 me obligan a evaluar la segunda 410 00:17:51,450 --> 00:17:53,589 me obligan a evaluarla, venga pues la evalúo 411 00:17:53,589 --> 00:17:54,750 ¿no igual a 5? no 412 00:17:54,750 --> 00:17:58,210 entonces la diferencia entre una barra y dos 413 00:17:58,210 --> 00:18:00,309 es en tiempo de ejecución 414 00:18:00,309 --> 00:18:01,690 habrá ejecuciones 415 00:18:01,690 --> 00:18:02,990 en las cuales 416 00:18:02,990 --> 00:18:06,029 aplique la diferencia de ejecuciones en las que no 417 00:18:06,029 --> 00:18:08,470 entonces siempre es mucho más interesante 418 00:18:08,470 --> 00:18:09,650 la doble barra que la primera 419 00:18:09,650 --> 00:18:12,109 porque en las ejecuciones 420 00:18:12,109 --> 00:18:14,190 en las cuales cuando tú has evaluado la primera 421 00:18:14,190 --> 00:18:16,049 ya tienes el resultado final 422 00:18:16,049 --> 00:18:17,750 ¿para qué vas a seguir evaluando y perdiendo tiempo? 423 00:18:18,970 --> 00:18:20,230 entonces siempre por defecto 424 00:18:20,230 --> 00:18:20,849 se usan dos 425 00:18:20,849 --> 00:18:22,809 Siempre, ¿no? 426 00:18:23,750 --> 00:18:25,809 Partimos de la base de que estos dos booleanos 427 00:18:25,809 --> 00:18:27,910 Da igual el valor de n 428 00:18:27,910 --> 00:18:29,470 Da igual, b1 y b2 429 00:18:29,470 --> 00:18:30,809 Siempre va a tener el mismo valor 430 00:18:30,809 --> 00:18:32,089 Siempre, porque es un or 431 00:18:32,089 --> 00:18:33,650 Y el or funciona siempre igual 432 00:18:33,650 --> 00:18:35,750 El tema es la máquina virtual 433 00:18:35,750 --> 00:18:37,829 Cómo lo ejecuta 434 00:18:37,829 --> 00:18:40,150 Qué hace, qué pasos da para obtener el resultado 435 00:18:40,150 --> 00:18:41,490 Qué pasos da, es la única diferencia 436 00:18:41,490 --> 00:18:44,490 Cuando hay el doble or, los pasos que da es 437 00:18:44,490 --> 00:18:45,829 Coge la primera 438 00:18:45,829 --> 00:18:47,750 True o false 439 00:18:47,750 --> 00:18:50,269 True, anda, lo que tengo después es un or 440 00:18:50,269 --> 00:18:52,710 pues entonces es que me da igual lo que vaya después 441 00:18:52,710 --> 00:18:54,450 sé que va a ser un true el final 442 00:18:54,450 --> 00:18:56,670 sé que va a ser un true, porque true or con 443 00:18:56,670 --> 00:18:58,670 false es true y true or con true es true 444 00:18:58,670 --> 00:19:00,430 entonces dice, ¿qué más me da? 445 00:19:00,549 --> 00:19:02,710 si sé que el resultado final es true, paso de la 446 00:19:02,710 --> 00:19:04,230 segunda, vale 447 00:19:04,230 --> 00:19:06,410 cuando se encuentra solo una barra 448 00:19:06,410 --> 00:19:08,910 evalúa la primera, es true 449 00:19:08,910 --> 00:19:10,789 está claro, entonces 450 00:19:10,789 --> 00:19:12,670 siempre interesa la doble barra 451 00:19:12,670 --> 00:19:14,089 porque así te 452 00:19:14,089 --> 00:19:16,609 evitas que la máquina virtual haga un 453 00:19:16,609 --> 00:19:17,730 trabajo que no lo necesita 454 00:19:17,730 --> 00:19:20,490 ¿Eso está claro? 455 00:19:21,809 --> 00:19:23,049 Vale, pues entonces 456 00:19:23,049 --> 00:19:24,390 ¿Por qué existen dos? 457 00:19:25,349 --> 00:19:27,869 Porque si siempre el resultado del booleano 458 00:19:27,869 --> 00:19:28,890 Siempre es el mismo 459 00:19:28,890 --> 00:19:30,650 Eso está claro, siempre es el mismo 460 00:19:30,650 --> 00:19:32,250 Porque es el or de este y este 461 00:19:32,250 --> 00:19:35,650 Cuando n sea 5, tanto este como este dan true 462 00:19:35,650 --> 00:19:38,450 Cuando n sea 4, tanto este como este dan false 463 00:19:38,450 --> 00:19:39,769 Cuando n sea menos 5 464 00:19:39,769 --> 00:19:41,549 Tanto este como este dan false 465 00:19:41,549 --> 00:19:43,329 Cuando n sea 7 466 00:19:43,329 --> 00:19:44,750 Tanto este como este dan true 467 00:19:44,750 --> 00:19:49,730 O sea, los dos booleanos siempre van a tener un valor, siempre, sea cual sea el valor de n, siempre. 468 00:19:50,470 --> 00:19:57,430 Pues entonces, ¿qué sentido, qué interés tiene que haya dos formas de expresarla? 469 00:19:57,589 --> 00:20:01,490 Pues lo que hemos explicado, el funcionamiento de la máquina virtual, entonces es, 470 00:20:01,950 --> 00:20:08,630 cuando hay dos barras, evalúa esta, que eso ya ha sido suficiente para el resultado final, 471 00:20:08,930 --> 00:20:10,250 pasa de lo que hay a continuación. 472 00:20:11,029 --> 00:20:11,470 Estupendo. 473 00:20:11,470 --> 00:20:13,589 Cuando hay una única barra 474 00:20:13,589 --> 00:20:15,089 Evalúa este 475 00:20:15,089 --> 00:20:17,950 Que el resultado ya ha sido suficiente 476 00:20:17,950 --> 00:20:19,329 No pasa, lo evalúa 477 00:20:19,329 --> 00:20:21,430 En este ejemplo no vale para nada 478 00:20:21,430 --> 00:20:23,710 Pero imagínate que tenemos 479 00:20:23,710 --> 00:20:25,450 Expresiones en las cuales 480 00:20:25,450 --> 00:20:28,410 Además de hacer una condición 481 00:20:28,410 --> 00:20:29,250 Hacemos cosas 482 00:20:29,250 --> 00:20:30,349 Que son los ejemplos que poníamos 483 00:20:30,349 --> 00:20:31,269 Como por ejemplo este 484 00:20:31,269 --> 00:20:32,910 El más fácil de entender 485 00:20:32,910 --> 00:20:35,569 Claro, aquí 486 00:20:35,569 --> 00:20:37,789 Para evaluar esta condición 487 00:20:37,789 --> 00:20:40,650 Luego además después le estás dando la orden de incrementar 488 00:20:40,650 --> 00:20:43,509 Entonces, aquí sí que hay una diferencia enorme 489 00:20:43,509 --> 00:20:45,769 Entre estas dos sentencias 490 00:20:45,769 --> 00:20:47,529 Aquí sí 491 00:20:47,529 --> 00:20:50,289 Porque aquí, cuando tú le metas 7 492 00:20:50,289 --> 00:20:52,329 El boolean B1 va a ser true 493 00:20:52,329 --> 00:20:53,869 Está claro, ya el boolean B2 también 494 00:20:53,869 --> 00:20:54,509 Eso no cambia 495 00:20:54,509 --> 00:20:56,430 El resultado final va a ser true 496 00:20:56,430 --> 00:20:59,609 Pero la diferencia es que pasa con las variables que hay aquí dentro 497 00:20:59,609 --> 00:21:01,369 Cuando tú le des 7 498 00:21:01,369 --> 00:21:02,690 Como esto es true 499 00:21:02,690 --> 00:21:04,549 Esto ya no lo hace 500 00:21:04,549 --> 00:21:05,890 Porque B1 ya es true 501 00:21:05,890 --> 00:21:08,569 Y al no hacerlo, N no se queda incrementado 502 00:21:08,569 --> 00:21:11,329 pero cuando le damos esta 503 00:21:11,329 --> 00:21:13,470 y en el 7, esto lo hace 504 00:21:13,470 --> 00:21:14,190 B2 ya es true 505 00:21:14,190 --> 00:21:16,549 igual que era B1 506 00:21:16,549 --> 00:21:19,849 pero le obligamos a que entre aquí también 507 00:21:19,849 --> 00:21:20,630 le obligamos 508 00:21:20,630 --> 00:21:23,329 y al entrar, entonces ya sí que deja en incrementado 509 00:21:23,329 --> 00:21:25,789 entonces la diferencia entre por 2 barras y 1 510 00:21:25,789 --> 00:21:27,930 es cuando en las secuencias 511 00:21:27,930 --> 00:21:28,750 que tenemos después 512 00:21:28,750 --> 00:21:31,750 además de tener la expresión de la condición 513 00:21:31,750 --> 00:21:33,809 el igual, el distinto, además hacemos algo 514 00:21:33,809 --> 00:21:34,470 con las variables 515 00:21:34,470 --> 00:21:36,869 como asignarlas, incrementarlas 516 00:21:36,869 --> 00:21:38,650 Porque eso se va a hacer o no se va a hacer 517 00:21:38,650 --> 00:21:39,490 En algunos casos 518 00:21:39,490 --> 00:21:42,390 Por ejemplo, cuando le damos n igual a 3 519 00:21:42,390 --> 00:21:43,930 Cuando le damos n igual a 3 520 00:21:43,930 --> 00:21:46,589 En esa ejecución concreta de n igual a 3 521 00:21:46,589 --> 00:21:47,890 Estas sí que hacen lo mismo 522 00:21:47,890 --> 00:21:50,829 Porque como esta es falsa 523 00:21:50,829 --> 00:21:53,269 n igual a 3, la doble barra se ve obligada a entrar 524 00:21:53,269 --> 00:21:54,730 Porque esta es falsa 525 00:21:54,730 --> 00:21:56,829 Entonces se ve obligada a entrar y entonces ya lo incrementa 526 00:21:56,829 --> 00:21:58,789 Y cuando n es igual a 3 527 00:21:58,789 --> 00:22:00,710 Evalúa las dos obligatoriamente 528 00:22:00,710 --> 00:22:01,630 Y esta ya lo incrementa 529 00:22:01,630 --> 00:22:05,109 Entonces en las ejecuciones en las que le pasemos n igual a 3 530 00:22:05,109 --> 00:22:06,690 Esto y esto hacen lo mismo 531 00:22:06,690 --> 00:22:09,849 Pero en las ejecuciones en las que le pasemos 532 00:22:09,849 --> 00:22:10,829 N igual a 7 533 00:22:10,829 --> 00:22:12,589 Esta y esta actúan de forma distinta 534 00:22:12,589 --> 00:22:14,049 Porque esta entra aquí y esta no 535 00:22:14,049 --> 00:22:15,650 ¿Vale? 536 00:22:16,450 --> 00:22:18,609 Entonces siempre por defecto doble barra 537 00:22:18,609 --> 00:22:20,470 Porque le ahorramos trabajo a la máquina virtual 538 00:22:20,470 --> 00:22:22,690 Salvo que tengamos una condición 539 00:22:22,690 --> 00:22:25,069 Que está después en la que además 540 00:22:25,069 --> 00:22:26,410 De tener la condición hacemos algo 541 00:22:26,410 --> 00:22:29,029 En ese caso sí ponemos una barra 542 00:22:29,029 --> 00:22:31,089 Pero son casos muy puntuales 543 00:22:31,089 --> 00:22:36,619 Entonces por eso siempre vais a ver en los códigos 544 00:22:36,619 --> 00:22:38,880 Que siempre se pone la doble barra o el doble and 545 00:22:38,880 --> 00:22:39,880 Porque es lo más rápido 546 00:22:39,880 --> 00:22:41,460 Para la máquina virtual 547 00:22:41,460 --> 00:22:43,819 Pasa de lo que viene a continuación 548 00:22:43,819 --> 00:22:46,500 ¿Entendido? 549 00:22:47,220 --> 00:22:47,960 ¿Todo el mundo? 550 00:22:49,160 --> 00:22:50,960 Bueno, vale, pues entonces 551 00:22:50,960 --> 00:22:52,640 Este código que 552 00:22:52,640 --> 00:22:54,839 Lo hemos cambiado este código para que no anide 553 00:22:54,839 --> 00:22:55,859 If 554 00:22:55,859 --> 00:22:58,480 Y hemos puesto si n es menor que 10 555 00:22:58,480 --> 00:23:00,359 Y además de ser menor que 10 556 00:23:00,359 --> 00:23:02,579 Es igual a 2 o igual a 3 557 00:23:02,579 --> 00:23:04,259 O igual a 5 o igual a 7 558 00:23:04,259 --> 00:23:06,319 Cuidadito con el paréntesis 559 00:23:06,319 --> 00:23:08,680 Aquí sí que tenemos que ponerlo 560 00:23:08,680 --> 00:23:10,059 Porque es esta condición 561 00:23:10,059 --> 00:23:11,319 Por un lado n menor que 10 562 00:23:11,319 --> 00:23:14,279 Y además n igual a 2 o n igual a 3 563 00:23:14,279 --> 00:23:16,240 O n igual a 4 o n igual a 5 564 00:23:16,240 --> 00:23:16,819 O n igual a 7 565 00:23:16,819 --> 00:23:18,140 O sea, son dos condiciones 566 00:23:18,140 --> 00:23:20,960 Que evaluamos por separado 567 00:23:20,960 --> 00:23:22,960 Y luego el and de las dos 568 00:23:22,960 --> 00:23:24,099 Vale, es primo 569 00:23:24,099 --> 00:23:25,200 Y si no, no primo 570 00:23:25,200 --> 00:23:27,319 Vale, pues ahora hago yo la pregunta 571 00:23:27,319 --> 00:23:31,059 Voy a quitar esto para que 572 00:23:31,059 --> 00:23:34,000 Se vea todo el código junto 573 00:23:34,000 --> 00:23:37,809 Este código de arriba 574 00:23:37,809 --> 00:23:42,450 y este código de abajo 575 00:23:42,450 --> 00:23:43,589 este código 576 00:23:43,589 --> 00:23:45,829 y este código 577 00:23:45,829 --> 00:23:48,349 son idénticos 578 00:23:48,349 --> 00:23:49,569 a efectos de ejecución 579 00:23:49,569 --> 00:23:52,230 podríamos decir que son dos códigos idénticos 580 00:23:52,230 --> 00:23:53,410 que hacen siempre lo mismo 581 00:23:53,410 --> 00:23:55,109 el de arriba y el de abajo 582 00:23:55,109 --> 00:24:02,819 ¿tú dirías que sí? 583 00:24:04,579 --> 00:24:05,099 venga 584 00:24:05,099 --> 00:24:06,740 ¿cuántos dicen que sí? 585 00:24:06,819 --> 00:24:08,180 que el código de arriba y el código de abajo 586 00:24:08,180 --> 00:24:09,460 son idénticos 587 00:24:09,460 --> 00:24:10,779 cuando digo que son idénticos 588 00:24:10,779 --> 00:24:13,839 es que sea cual sea el dato de entrada 589 00:24:13,839 --> 00:24:16,039 que es n, el resultado va a ser siempre el mismo 590 00:24:16,039 --> 00:24:19,079 hay dos votos así 591 00:24:19,079 --> 00:24:21,700 sí pero, es sí o no 592 00:24:21,700 --> 00:24:23,440 no hay pero sin programación, es sí o no 593 00:24:23,440 --> 00:24:25,039 lógica binaria, ¿son idénticos? 594 00:24:25,500 --> 00:24:27,980 sea cual sea el dato de n 595 00:24:27,980 --> 00:24:29,700 de entrada, ¿hacen lo mismo? 596 00:24:31,140 --> 00:24:31,920 tú dices que no 597 00:24:31,920 --> 00:24:33,180 ¿por qué no? 598 00:24:40,940 --> 00:24:42,200 claro, a ver 599 00:24:42,200 --> 00:24:44,500 no hacen lo mismo 600 00:24:44,500 --> 00:24:45,359 para todos los casos de n 601 00:24:45,359 --> 00:24:48,240 vamos a imaginar un caso de que n sea 602 00:24:48,240 --> 00:24:49,779 12 mayor que 10 603 00:24:49,779 --> 00:24:55,680 el de arriba, si n es mayor que 10, directamente no entra aquí, no hace nada. 604 00:24:56,680 --> 00:24:58,920 Es decir, el programa no muestra nada, se queda callado. 605 00:24:59,380 --> 00:25:00,799 Si n es 12, ¿verdad? 606 00:25:02,140 --> 00:25:07,799 Pero aquí, si n es 12, esto ya le da false, con lo cual esto ya pasa, 607 00:25:07,799 --> 00:25:12,180 porque false and lo que sea es false, y es un doble and, le da false, 608 00:25:12,319 --> 00:25:14,140 y al hacer false entra en el el sí. 609 00:25:15,119 --> 00:25:18,019 Entonces, para todos los valores de entrada mayores o iguales que 10, 610 00:25:18,019 --> 00:25:19,960 El código de arriba dice 611 00:25:19,960 --> 00:25:21,000 Se queda callado 612 00:25:21,000 --> 00:25:23,440 Y el código de abajo dice 613 00:25:23,440 --> 00:25:24,259 No primo 614 00:25:24,259 --> 00:25:27,980 Entonces para ese conjunto de casos de entrada 615 00:25:27,980 --> 00:25:29,680 Mayores o iguales que 10 616 00:25:29,680 --> 00:25:31,579 El programa no hace lo mismo 617 00:25:31,579 --> 00:25:33,500 Para los menores que 10 sí 618 00:25:33,500 --> 00:25:35,539 Para todos los menores que 10 sí 619 00:25:35,539 --> 00:25:37,039 Porque para los menores que 10 620 00:25:37,039 --> 00:25:37,980 Entra aquí 621 00:25:37,980 --> 00:25:39,680 Si además se cumple esto 622 00:25:39,680 --> 00:25:40,380 Que es este and 623 00:25:40,380 --> 00:25:42,519 Si además se cumple hace primo 624 00:25:42,519 --> 00:25:44,619 Y si no se cumple hace esto 625 00:25:44,619 --> 00:25:45,359 Que es esto 626 00:25:45,359 --> 00:25:49,359 Entonces, no para todos los casos de entrada hace lo mismo 627 00:25:49,359 --> 00:25:53,220 Solo para los mayores o para los menores de 10 628 00:25:53,220 --> 00:25:57,160 ¿Vale? Para los mayores o iguales de 10 629 00:25:57,160 --> 00:26:01,759 Este se calla porque se iría a este else que no hace nada, que no existe 630 00:26:01,759 --> 00:26:05,140 Y este para los mayores o iguales que 10, esto le da false 631 00:26:05,140 --> 00:26:07,240 Porque esta es false y se mete aquí 632 00:26:07,240 --> 00:26:08,079 ¿Vale? 633 00:26:10,259 --> 00:26:13,079 Otra cosa es que eso nos importe o no nos importe 634 00:26:13,079 --> 00:26:24,839 Si nos importa y queremos que para los valores de n mayores o iguales que 10 no lo diga, nos lo diga, pues entonces tendríamos que cambiar este código y aquí sí que implicaría anidar otro if. 635 00:26:24,839 --> 00:26:35,460 En el otro caso, si n es mayor o igual que 10, decir mayor o igual, no decir nada y si no lo es, decir no primo, pero tendríamos que anidar aquí entonces también otro if. 636 00:26:35,460 --> 00:26:39,519 bueno, ¿a dónde quiero ir a parar? 637 00:26:40,900 --> 00:26:42,339 no mencionamos ayer 638 00:26:42,339 --> 00:26:44,099 un poco antes de irnos 639 00:26:44,099 --> 00:26:46,200 que precisamente para evitar 640 00:26:46,200 --> 00:26:47,660 anidarif en los códigos 641 00:26:47,660 --> 00:26:50,259 Java nos daba una forma 642 00:26:50,259 --> 00:26:52,640 compacta de explicarlo 643 00:26:52,640 --> 00:26:54,279 cuando yo quería contemplar varias posibilidades 644 00:26:54,279 --> 00:26:55,299 que es justo este caso 645 00:26:55,299 --> 00:26:57,420 en este caso lo que me estoy dando cuenta 646 00:26:57,420 --> 00:26:59,759 es que en realidad yo quiero contemplar tres 647 00:26:59,759 --> 00:27:01,960 número mayor o igual que diez 648 00:27:01,960 --> 00:27:04,240 ser primo o ser no primo 649 00:27:04,240 --> 00:27:05,259 son tres 650 00:27:05,259 --> 00:27:07,019 Pues si son tres 651 00:27:07,019 --> 00:27:09,339 Tres no se puede hacer con un if-else 652 00:27:09,339 --> 00:27:11,980 De ahí es que, de ahí me ha venido lo de tener que anidar 653 00:27:11,980 --> 00:27:13,960 ¿Vale? De ahí me ha venido 654 00:27:13,960 --> 00:27:15,420 De ahí me ha venido lo de tener que anidar 655 00:27:15,420 --> 00:27:16,059 Porque son tres 656 00:27:16,059 --> 00:27:20,240 Bueno, pues cuando tengo más de dos posibilidades 657 00:27:20,240 --> 00:27:21,559 En lugar de ir anidando 658 00:27:21,559 --> 00:27:23,240 Y dentro de los if 659 00:27:23,240 --> 00:27:25,079 Para ir abriendo ramas, ir abriendo ramas 660 00:27:25,079 --> 00:27:27,279 Que sería la forma de ir contemplando 661 00:27:27,279 --> 00:27:28,799 Uy, se estaba así detrás 662 00:27:28,799 --> 00:27:30,220 ¿Cuándo has llegado tú? 663 00:27:31,180 --> 00:27:36,420 No, era Kevin, el que faltaba 664 00:27:36,420 --> 00:27:37,759 Ah, vale, tengo un contigo 665 00:27:37,759 --> 00:27:38,640 vale, vale, vale 666 00:27:38,640 --> 00:27:41,480 no, no, no, no, no 667 00:27:41,480 --> 00:27:42,839 le he puesto falta a Kevin 668 00:27:42,839 --> 00:27:45,359 sí, creo 669 00:27:45,359 --> 00:27:47,319 sí, vale 670 00:27:47,319 --> 00:27:50,200 bueno, entonces, ¿entendéis lo que estoy diciendo? 671 00:27:50,920 --> 00:27:51,799 que cuando 672 00:27:51,799 --> 00:27:53,500 tenemos un programa 673 00:27:53,500 --> 00:27:56,220 en el cual yo tengo varias posibilidades 674 00:27:56,220 --> 00:27:57,640 más de dos, como este 675 00:27:57,640 --> 00:27:59,579 que yo digo, ah no 676 00:27:59,579 --> 00:28:02,019 voy a mostrar, oprimo o no oprimo 677 00:28:02,019 --> 00:28:03,000 o mayor o igual que 10 678 00:28:03,000 --> 00:28:05,759 cuando tengo más de dos, es que con un único if-else 679 00:28:05,759 --> 00:28:07,660 es imposible, no puedo 680 00:28:07,660 --> 00:28:10,059 Porque con un if else solo puedo mostrar dos cosas 681 00:28:10,059 --> 00:28:11,559 O esta o la otra 682 00:28:11,559 --> 00:28:12,799 Con un if else es imposible 683 00:28:12,799 --> 00:28:14,539 Entonces tenemos que anidar 684 00:28:14,539 --> 00:28:17,339 Como aquí hemos anidado 685 00:28:17,339 --> 00:28:19,559 Si n es mayor que 10, primo y no primo 686 00:28:19,559 --> 00:28:20,220 Y si no 687 00:28:20,220 --> 00:28:23,119 Mayor o igual que 10 688 00:28:23,119 --> 00:28:24,920 Y aquí igual, si quiero distinguir 689 00:28:24,920 --> 00:28:26,980 Si es mayor o igual que 10, me toca anidar aquí dentro 690 00:28:26,980 --> 00:28:28,759 O sea, si hay más de dos opciones 691 00:28:28,759 --> 00:28:30,579 Tengo que ir anidando para ir abriendo ramas 692 00:28:30,579 --> 00:28:31,579 ¿Verdad? 693 00:28:38,470 --> 00:28:40,589 Aquí, si yo tengo más opciones 694 00:28:40,589 --> 00:28:46,589 No lo llamemos términos de condiciones 695 00:28:46,589 --> 00:28:50,329 En términos de posibilidades de resultado 696 00:28:50,329 --> 00:28:51,970 De posibilidades de resultado 697 00:28:51,970 --> 00:28:53,029 Cuando tengo varios caminos 698 00:28:53,029 --> 00:28:56,309 Entonces yo aquí tendría tres caminos 699 00:28:56,309 --> 00:28:58,069 Si n es mayor o igual que 10 700 00:28:58,069 --> 00:28:59,710 Si n es primo, si n es menor que 10 701 00:28:59,710 --> 00:29:00,470 O si n es no primo 702 00:29:00,470 --> 00:29:02,670 Entonces con un único if no puedo 703 00:29:02,670 --> 00:29:03,970 Porque con un único if tengo dos caminos 704 00:29:03,970 --> 00:29:06,049 Entonces tendría que abrirlo 705 00:29:06,049 --> 00:29:06,569 ¿Verdad? 706 00:29:06,569 --> 00:29:10,990 N es menor que 10 707 00:29:10,990 --> 00:29:12,609 Pues ahora abro aquí 708 00:29:12,609 --> 00:29:13,769 Vale 709 00:29:13,769 --> 00:29:15,329 Y además es primo 710 00:29:15,329 --> 00:29:18,009 Pues entonces abriría 711 00:29:18,009 --> 00:29:20,190 Tendría que abrir, es que no me queda otra 712 00:29:20,190 --> 00:29:21,470 Abriría por aquí 713 00:29:21,470 --> 00:29:23,650 Y abriría por aquí 714 00:29:23,650 --> 00:29:24,769 Entonces voy abriendo ramas 715 00:29:24,769 --> 00:29:27,130 Cada if anidado me va abriendo otro camino 716 00:29:27,130 --> 00:29:28,930 Cada if que anide me abre más y más 717 00:29:28,930 --> 00:29:30,430 ¿Verdad? 718 00:29:31,130 --> 00:29:33,650 Entonces, ayer cuando nos fuimos 719 00:29:33,650 --> 00:29:35,630 Cuando dijimos 720 00:29:35,630 --> 00:29:38,390 cuando yo identifico que un programa 721 00:29:38,390 --> 00:29:40,210 tiene varios caminos 722 00:29:40,210 --> 00:29:42,069 distintos, en lugar de anidar 723 00:29:42,069 --> 00:29:44,529 id dentro del id, dentro del if 724 00:29:44,529 --> 00:29:45,950 o dentro del else, en lugar de anidar 725 00:29:45,950 --> 00:29:47,369 porque se me queda un programa muy feo 726 00:29:47,369 --> 00:29:49,690 Java nos da una forma compacta de hacerlo 727 00:29:49,690 --> 00:29:51,210 ¿verdad? queda la sentencia como 728 00:29:51,210 --> 00:29:56,069 venga, ¿quién era el que había estudiado? 729 00:29:56,289 --> 00:29:57,930 tú, habías estudiado entre un cuarto de hora 730 00:29:57,930 --> 00:30:00,150 y media hora, entonces contéstame 731 00:30:00,150 --> 00:30:03,309 cuando, pues lo que acabo de decir 732 00:30:03,309 --> 00:30:04,430 siempre lo acabo de decir 733 00:30:05,009 --> 00:30:10,680 Claro, pues en general, hay que hacer un caso cuando hables. 734 00:30:12,079 --> 00:30:14,940 Bueno, pues lo que he dicho es, cuando tenemos varios... 735 00:30:14,940 --> 00:30:16,119 Pero mírame también. 736 00:30:17,220 --> 00:30:20,660 Mira, vosotros vais a una empresa y cuando alguien os habla, 737 00:30:21,140 --> 00:30:23,660 no le atendéis y luego le decís que no te ha escuchado 738 00:30:23,660 --> 00:30:26,720 y es que duráis un día de práctica, duráis uno. 739 00:30:27,480 --> 00:30:29,440 Y si todo ocurre a mí, a yo y a mí me estáis en la práctica 740 00:30:29,440 --> 00:30:32,140 y de verdad que os echan, os digo en serio que os echan. 741 00:30:32,240 --> 00:30:33,819 A ti me dicen que no contestéis tal cual. 742 00:30:33,819 --> 00:30:38,500 La verdad es que si dejan a vosotros y no contestáis o no miréis, es que os echan a la calle. 743 00:30:39,299 --> 00:30:40,599 Porque sobra gente. 744 00:30:40,900 --> 00:30:48,220 Entonces, por favor, tenéis que aprender ya a desarrollar conductas que sean compatibles con que os echen a la calle. 745 00:30:48,799 --> 00:30:49,019 ¿Vale? 746 00:30:49,099 --> 00:30:51,579 Entonces, como te estoy preguntando, no vas a escuchar. 747 00:30:51,740 --> 00:30:51,900 Vale. 748 00:30:52,039 --> 00:30:55,140 Primero, segundo, o para que te vuelva a preguntar, mírame y escúchame. 749 00:30:55,539 --> 00:30:59,599 Bueno, pues entonces, cuando tenemos un problema con varios caminos posibles, 750 00:30:59,599 --> 00:31:02,140 es primo, no es primo, no es igual que 10 751 00:31:02,140 --> 00:31:04,339 no nos queda más remedio que anidar y dentro de él 752 00:31:04,339 --> 00:31:05,400 ¿verdad? que es todo lo mismo 753 00:31:05,400 --> 00:31:06,619 ¿verdad que sí? 754 00:31:07,259 --> 00:31:10,140 como a mi ari ya dijimos ayer que era muy feo 755 00:31:10,819 --> 00:31:11,980 ya dijimos ayer 756 00:31:11,980 --> 00:31:14,119 que teníamos la posibilidad 757 00:31:14,119 --> 00:31:16,099 de enjabar y desarrollar de manera 758 00:31:16,099 --> 00:31:17,980 más compacta, dejamos la otra sentencia 759 00:31:17,980 --> 00:31:19,000 pues la pregunta es 760 00:31:19,000 --> 00:31:20,660 ¿esa sentencia cuál es? 761 00:31:29,539 --> 00:31:30,859 una forma que tiene 762 00:31:30,859 --> 00:31:31,680 el java de 763 00:31:31,680 --> 00:31:34,720 permitirnos anidar 764 00:31:34,720 --> 00:31:36,200 y de forma 765 00:31:36,200 --> 00:31:38,700 más compacta, no teniendo ahí 766 00:31:38,700 --> 00:31:40,380 ¿qué se entiende? ¿cómo la llamábamos? 767 00:31:40,460 --> 00:31:42,220 la imaginamos ayer y pusimos un ejemplo 768 00:31:42,220 --> 00:31:44,180 ¿quién me lo dice? 769 00:31:44,960 --> 00:31:45,559 el seguir 770 00:31:45,559 --> 00:31:47,579 el seguir 771 00:31:47,579 --> 00:31:51,450 hay allá y de verdad 772 00:31:51,450 --> 00:31:53,769 el futuro hay que curárselo mucho 773 00:31:53,769 --> 00:31:58,789 bueno, pues este es un caso 774 00:31:58,789 --> 00:32:00,470 este es un ejemplo de eso 775 00:32:00,470 --> 00:32:02,349 vale, aquí tenemos 776 00:32:02,349 --> 00:32:03,450 tres posibilidades 777 00:32:03,450 --> 00:32:05,410 identificamos que tenemos tres posibilidades 778 00:32:05,410 --> 00:32:09,650 vamos a borrar ya esto 779 00:32:09,650 --> 00:32:15,920 a ver 780 00:32:15,920 --> 00:32:17,660 Lo vamos a escribir aquí 781 00:32:17,660 --> 00:32:22,480 Tenemos tres caminos para este programa 782 00:32:22,480 --> 00:32:23,960 ¿Vale? Tenemos tres caminos 783 00:32:23,960 --> 00:32:26,259 Hemos identificado camino uno 784 00:32:26,259 --> 00:32:30,859 El camino uno es mostrar es primo 785 00:32:30,859 --> 00:32:34,099 Camino dos 786 00:32:34,099 --> 00:32:37,599 Mostrar es no primo 787 00:32:37,599 --> 00:32:39,859 Y camino tres 788 00:32:39,859 --> 00:32:42,640 Que aquí es donde ha venido el problema que me ha obligado a Anidarif 789 00:32:42,640 --> 00:32:43,440 Camino tres 790 00:32:43,440 --> 00:32:45,220 Es mayor o igual de diez 791 00:32:45,220 --> 00:32:55,220 ¿Vale? Tres caminos 792 00:32:55,220 --> 00:32:58,119 Si yo tengo tres posibilidades, repito por la próxima vez 793 00:32:58,119 --> 00:32:59,299 Es que voy a tener que anidarif 794 00:32:59,299 --> 00:33:01,039 ¿Qué es lo que he hecho arriba? Voy a tener que anidarlos 795 00:33:01,039 --> 00:33:03,480 Primero puedo distinguir una cosa 796 00:33:03,480 --> 00:33:04,519 Luego distinguir la otra 797 00:33:04,519 --> 00:33:06,900 Vale, pues entonces en lugar de anidarlos 798 00:33:06,900 --> 00:33:08,900 Teníamos la sentencia if, el seif 799 00:33:08,900 --> 00:33:09,859 Que tiene esta estructura 800 00:33:09,859 --> 00:33:13,400 Y la primera condición que me llevaría 801 00:33:13,400 --> 00:33:14,319 Por el primer camino 802 00:33:14,319 --> 00:33:15,839 El rollo que yo quiera 803 00:33:15,839 --> 00:33:19,119 El seif, la siguiente condición 804 00:33:19,119 --> 00:33:21,440 Que me lleva por el otro camino 805 00:33:21,440 --> 00:33:23,400 condición para el camino 1 806 00:33:23,400 --> 00:33:26,279 lo pongo así 807 00:33:26,279 --> 00:33:30,160 esta condición que me lleva al camino 2 808 00:33:30,160 --> 00:33:34,619 y aquí lo que sea para el camino 2 809 00:33:34,619 --> 00:33:36,400 y así puedo seguir hasta el infinito 810 00:33:36,400 --> 00:33:39,259 el save condición 811 00:33:39,259 --> 00:33:41,279 que me lleva al 812 00:33:41,279 --> 00:33:44,720 camino 3 813 00:33:44,720 --> 00:33:48,380 como si tuviera tropecientos caminos 814 00:33:48,380 --> 00:34:05,200 y luego a la sentencia del save 815 00:34:05,200 --> 00:34:06,160 que tiene esa estructura 816 00:34:06,160 --> 00:34:07,839 Le puedo añadir un else 817 00:34:07,839 --> 00:34:09,079 Que es 818 00:34:09,079 --> 00:34:12,420 Si no se cumple ninguna de las anteriores 819 00:34:12,420 --> 00:34:26,900 ¿Vale? 820 00:34:27,059 --> 00:34:29,780 Entonces esta sentencia es como si hiciéramos 821 00:34:29,780 --> 00:34:31,619 Si se cumple la condición camino 1 822 00:34:31,619 --> 00:34:33,099 Y me tira dentro del if 823 00:34:33,099 --> 00:34:35,679 Y se cumple camino 2 824 00:34:35,679 --> 00:34:37,260 Y me tira dentro del if 825 00:34:37,260 --> 00:34:38,599 Y se cumple camino 3 826 00:34:38,599 --> 00:34:40,579 Entonces eso sería un anidamiento muy complicado 827 00:34:40,579 --> 00:34:42,079 Bueno, pues entonces 828 00:34:42,079 --> 00:34:43,980 Como ya entendemos lo que es un if 829 00:34:43,980 --> 00:34:46,260 Que significa anidarlo y todo eso 830 00:34:46,260 --> 00:34:48,099 Ya podemos usar esta sentencia 831 00:34:48,099 --> 00:34:50,159 que de forma más clara 832 00:34:50,159 --> 00:34:52,119 me recoge esa situación 833 00:34:52,119 --> 00:34:54,559 situación en la que mi programa puede hacer 834 00:34:54,559 --> 00:34:56,460 varias cosas, más de dos 835 00:34:56,460 --> 00:34:57,480 más de dos 836 00:34:57,480 --> 00:35:00,300 cada una de ellas se asocia a una condición, está clara 837 00:35:00,300 --> 00:35:02,280 esta sí es esta condición 838 00:35:02,280 --> 00:35:04,480 esta sí es esta otra, esta sí es esta otra 839 00:35:04,480 --> 00:35:05,559 cada una se asocia a una condición 840 00:35:05,559 --> 00:35:07,599 pues ya está, planta un if, el se if 841 00:35:07,599 --> 00:35:09,320 y la máquina virtual lo interpreta 842 00:35:09,320 --> 00:35:11,380 primero evalúa esta condición 843 00:35:11,380 --> 00:35:13,079 si es cierta, hace lo que hay aquí 844 00:35:13,079 --> 00:35:15,139 y se acabó, y continuamos por abajo 845 00:35:15,139 --> 00:35:17,139 que no es cierta 846 00:35:17,139 --> 00:35:18,260 se va a la siguiente 847 00:35:18,260 --> 00:35:21,500 que esa es cierta, hace lo que hay aquí dentro 848 00:35:21,500 --> 00:35:23,539 y se acabó, y continuamos abajo 849 00:35:23,539 --> 00:35:24,820 que no lo es 850 00:35:24,820 --> 00:35:27,559 se va a evaluar esta, que es cierta 851 00:35:27,559 --> 00:35:28,599 hace lo que hay dentro 852 00:35:28,599 --> 00:35:30,519 que no lo es 853 00:35:30,519 --> 00:35:33,880 y ya termina, y se va por aquí, que no lo es, pasa a la siguiente 854 00:35:33,880 --> 00:35:35,400 que lo es 855 00:35:35,400 --> 00:35:37,300 hace lo que hay dentro y se acabó, se va abajo 856 00:35:37,300 --> 00:35:40,260 que tampoco lo es, pues ya se va a leerse 857 00:35:40,260 --> 00:35:42,739 vale, entonces esta es la estructura 858 00:35:42,739 --> 00:35:45,519 que ya plantamos cuando tenemos un programa 859 00:35:45,519 --> 00:35:49,139 que tiene varias posibilidades, cada una de ellas recogidas con una condición. 860 00:35:50,219 --> 00:35:55,760 En lugar de hacerlo con la sentencia básica, if, else e ir anidando, que se hace más pesado, 861 00:35:56,320 --> 00:36:01,800 pues identificamos los caminos, la condición que me lleva a cada camino y ya está, y planto el if, else e if. 862 00:36:04,059 --> 00:36:08,079 Bueno, pues en este caso era la situación que teníamos. Tenemos tres caminos. 863 00:36:09,559 --> 00:36:11,199 Voy a poner esto así. 864 00:36:11,199 --> 00:36:17,219 Vale, pues este es el caso en el que estábamos 865 00:36:17,219 --> 00:36:18,480 Tenemos un dato de entrada 866 00:36:18,480 --> 00:36:20,119 Tres posibilidades 867 00:36:20,119 --> 00:36:21,579 Esto, esto y esto 868 00:36:21,579 --> 00:36:23,639 Pues ya está, vamos a plantar un if, el se, if 869 00:36:23,639 --> 00:36:26,420 Con estas tres posibilidades y se acabó 870 00:36:26,420 --> 00:36:28,420 Y nos va a quedar un programa más bonito, seguramente 871 00:36:28,420 --> 00:36:30,860 Pues venga, plantamos la primera 872 00:36:30,860 --> 00:36:33,340 N es 873 00:36:33,340 --> 00:36:35,820 Venga 874 00:36:35,820 --> 00:36:38,800 N es mayor o igual que 10 875 00:36:38,800 --> 00:36:45,489 Bueno, hemos dicho que mayor o igual que 10 es el caso 876 00:36:45,489 --> 00:36:47,809 Pues ya está, 100 es mayor o igual que 10 877 00:36:47,809 --> 00:36:50,050 No pongo 878 00:36:50,050 --> 00:36:52,010 Llaves 879 00:36:52,010 --> 00:36:53,269 Porque solo hay una sentencia 880 00:36:53,269 --> 00:36:54,230 Pues entonces 881 00:36:54,230 --> 00:36:58,650 Mostrar es mayor o igual que 10 882 00:36:58,650 --> 00:36:59,250 Pues venga 883 00:36:59,250 --> 00:37:02,150 Un momento 884 00:37:02,150 --> 00:37:04,869 O igual que 10 885 00:37:04,869 --> 00:37:06,590 Vale 886 00:37:06,590 --> 00:37:09,369 Ahora, ese camino ya está 887 00:37:09,369 --> 00:37:11,389 Si es mayor o igual que 10, me voy por este camino 888 00:37:11,389 --> 00:37:14,809 Que no es mayor o igual que 10 889 00:37:14,809 --> 00:37:17,690 Pues me planto aquí mi else if 890 00:37:17,690 --> 00:37:24,110 Que sería 891 00:37:24,110 --> 00:37:25,769 N 892 00:37:25,769 --> 00:37:27,630 Es ya la otra condición 893 00:37:27,630 --> 00:37:29,070 Toda esta 894 00:37:29,070 --> 00:37:37,199 N es igual a 2 895 00:37:37,199 --> 00:37:39,340 O igual a 3 o igual a 5 o igual a 7 896 00:37:39,340 --> 00:37:41,460 Pues entonces 897 00:37:41,460 --> 00:37:43,539 Es primo 898 00:37:43,539 --> 00:37:50,269 La siguiente 899 00:37:50,269 --> 00:37:51,170 Como ya es 900 00:37:51,170 --> 00:37:52,829 Si no se cumple con las anteriores 901 00:37:52,829 --> 00:37:54,809 Pues entonces la puedo meter en un else 902 00:37:54,809 --> 00:37:57,010 No hace falta que ponga un else if 903 00:37:57,010 --> 00:37:59,489 Que sea n diferente de 2 904 00:37:59,489 --> 00:38:00,630 Y diferente de 3 905 00:38:00,630 --> 00:38:01,769 Y diferente de 5 906 00:38:01,769 --> 00:38:03,030 Y diferente de 7 907 00:38:03,030 --> 00:38:12,530 Vale, pues así queda mucho más claro 908 00:38:12,530 --> 00:38:13,269 Para el que lo ve 909 00:38:13,269 --> 00:38:16,110 Y no hay ningún if anidado a la vista 910 00:38:16,110 --> 00:38:18,170 Para la máquina virtual lo hay 911 00:38:18,170 --> 00:38:19,829 Lo que pasa es que nosotros no lo vemos 912 00:38:19,829 --> 00:38:22,650 Si n es mayor o igual que 10 913 00:38:22,650 --> 00:38:23,769 Hace esto, que no 914 00:38:23,769 --> 00:38:26,010 Es como si anidara un if dentro del else 915 00:38:26,010 --> 00:38:26,550 Que no 916 00:38:26,550 --> 00:38:30,269 ¿Cumple esto? Pues es primo 917 00:38:30,269 --> 00:38:32,130 que no, no primo, ya está, tengo cada camino 918 00:38:32,130 --> 00:38:34,150 contemplado en una condición 919 00:38:34,150 --> 00:38:35,909 cada camino contemplado en una condición 920 00:38:35,909 --> 00:38:38,449 ¿vale? 921 00:38:42,960 --> 00:38:43,500 a ver 922 00:38:43,500 --> 00:38:45,659 podría haber cambiado el orden, uno pone el orden 923 00:38:45,659 --> 00:38:47,639 que le parece más claro, podría haber puesto primero 924 00:38:47,639 --> 00:38:49,739 esta condición, n si de alguno 925 00:38:49,739 --> 00:38:51,519 de estos, entonces es primo 926 00:38:51,519 --> 00:38:53,320 que no, ahora te pones 927 00:38:53,320 --> 00:38:55,719 n mayor o igual que 10, da igual, en realidad 928 00:38:55,719 --> 00:38:56,780 en el orden en el que lo ponga 929 00:38:56,780 --> 00:38:59,900 ¿vale? estas de aquí da igual 930 00:38:59,900 --> 00:39:01,480 porque se van haciendo una por una y cuando 931 00:39:01,480 --> 00:39:02,940 encuentra una que es cierta, ya 932 00:39:02,940 --> 00:39:04,699 hace esa 933 00:39:04,699 --> 00:39:05,980 vale 934 00:39:05,980 --> 00:39:15,150 pues vamos a parar un momentito