1 00:00:00,180 --> 00:00:02,700 para poder avanzar 2 00:00:02,700 --> 00:00:04,679 y hacer ya cositas más interesantes 3 00:00:04,679 --> 00:00:06,019 y ya está 4 00:00:06,019 --> 00:00:07,120 vale 5 00:00:07,120 --> 00:00:10,699 el documento que estamos dando como guía para no perdernos 6 00:00:10,699 --> 00:00:12,500 ya sabemos 7 00:00:12,500 --> 00:00:14,279 ya hacer condiciones ¿verdad? 8 00:00:15,099 --> 00:00:15,820 sencillas 9 00:00:15,820 --> 00:00:17,199 y sabemos hacer 10 00:00:17,199 --> 00:00:18,260 sabemos 11 00:00:18,260 --> 00:00:20,839 joder 12 00:00:20,839 --> 00:00:24,440 sabemos hacer condiciones con el menor que 13 00:00:24,440 --> 00:00:26,100 mayor que, menor o igual 14 00:00:26,100 --> 00:00:27,899 mayor o igual, igual a 15 00:00:27,899 --> 00:00:29,320 y distinto de 16 00:00:29,320 --> 00:00:31,899 sabemos hacer condiciones con estos operadores 17 00:00:31,899 --> 00:00:33,320 comparando cosas que tengan 18 00:00:33,320 --> 00:00:35,880 como numeritos y carácter y ya está 19 00:00:35,880 --> 00:00:37,340 pero 20 00:00:37,340 --> 00:00:39,619 esas condiciones 21 00:00:39,619 --> 00:00:41,640 que podemos hacer son tan simples 22 00:00:41,640 --> 00:00:43,320 que hay veces que 23 00:00:43,320 --> 00:00:44,719 necesitamos 24 00:00:44,719 --> 00:00:48,060 construir operaciones más complejas 25 00:00:48,060 --> 00:00:50,000 para lo cual 26 00:00:50,000 --> 00:00:52,479 podemos unir condiciones sencillas 27 00:00:52,479 --> 00:00:54,280 con los operadores lógicos 28 00:00:54,280 --> 00:00:55,020 o booleanos 29 00:00:55,020 --> 00:00:57,880 estos operadores 30 00:00:57,880 --> 00:01:01,799 me permiten unir dos condiciones más sencillas 31 00:01:01,799 --> 00:01:04,000 y obtener una más grande. 32 00:01:05,200 --> 00:01:09,439 Luego, los relacionales unen numeritos 33 00:01:09,439 --> 00:01:11,540 y obtienen una condición. 34 00:01:12,459 --> 00:01:15,079 Los booleanos unen condiciones 35 00:01:15,079 --> 00:01:17,480 y obtienen otra condición más grande. 36 00:01:19,319 --> 00:01:20,299 ¿Cuáles son? 37 00:01:26,269 --> 00:01:30,650 Esencialmente, el an, el or y el not. 38 00:01:31,170 --> 00:01:32,549 Los de toda la vida. 39 00:01:32,709 --> 00:01:34,090 es una aclaración hacia abajo 40 00:01:34,090 --> 00:01:37,170 sí, una exclamación, la de cierre 41 00:01:37,170 --> 00:01:37,890 no la de apertura 42 00:01:37,890 --> 00:01:40,930 entonces, estos son los tres 43 00:01:40,930 --> 00:01:42,909 de toda la vida, y así es como 44 00:01:42,909 --> 00:01:44,129 se escriben en Java 45 00:01:44,129 --> 00:01:47,370 entonces, si yo uno dos condiciones 46 00:01:47,370 --> 00:01:48,189 con and 47 00:01:48,189 --> 00:01:50,829 la condición gordota que 48 00:01:50,829 --> 00:01:53,049 encuentro, será cierta 49 00:01:53,049 --> 00:01:54,489 solo si lo son 50 00:01:54,489 --> 00:01:56,109 simultáneamente las dos 51 00:01:56,109 --> 00:02:00,010 si yo uno dos condiciones 52 00:02:00,010 --> 00:02:02,150 pequeñitas con un or 53 00:02:02,150 --> 00:02:04,730 obtengo una condición más grandota 54 00:02:04,730 --> 00:02:06,790 y esa condición 55 00:02:06,790 --> 00:02:08,669 será cierta con que 56 00:02:08,669 --> 00:02:10,930 alguna de las dos, cualquiera de las dos 57 00:02:10,930 --> 00:02:12,770 lo sea, si son las dos también, claro 58 00:02:12,770 --> 00:02:14,490 y el not 59 00:02:14,490 --> 00:02:17,129 solo se aplica a una condición 60 00:02:17,129 --> 00:02:18,469 que va detrás 61 00:02:18,469 --> 00:02:20,310 y es la contraria 62 00:02:20,310 --> 00:02:22,189 si a 63 00:02:22,189 --> 00:02:24,250 es cierta 64 00:02:24,250 --> 00:02:27,050 con el no delante 65 00:02:27,050 --> 00:02:28,729 la condición que consigo 66 00:02:28,729 --> 00:02:29,629 es falsa 67 00:02:29,629 --> 00:02:32,550 y si A es falsa, justo, la condición 68 00:02:32,550 --> 00:02:34,210 que consigo es cierta, entonces 69 00:02:34,210 --> 00:02:36,509 con esto que expreso, enunciados 70 00:02:36,509 --> 00:02:38,389 del tipo, pasa 71 00:02:38,389 --> 00:02:40,430 esto y además pasa 72 00:02:40,430 --> 00:02:42,289 esto, entonces cuando mi 73 00:02:42,289 --> 00:02:44,409 enunciado es, pasa esto y 74 00:02:44,409 --> 00:02:46,490 pasa esto, me va a hacer falta 75 00:02:46,490 --> 00:02:48,169 un A, esto y 76 00:02:48,169 --> 00:02:49,849 esto, pero cuando 77 00:02:49,849 --> 00:02:52,330 mi enunciado es, pasa 78 00:02:52,330 --> 00:02:54,469 esto o pasa esto 79 00:02:54,469 --> 00:02:56,229 otro, pues entonces sé que 80 00:02:56,229 --> 00:02:57,430 automáticamente será un O 81 00:02:57,430 --> 00:03:00,050 pero si mi enunciado es 82 00:03:00,050 --> 00:03:01,530 no pasa esto 83 00:03:01,530 --> 00:03:03,949 pues entonces sé que automáticamente 84 00:03:03,949 --> 00:03:06,129 mi operador que me vendrá bien 85 00:03:06,129 --> 00:03:06,990 poner es el not 86 00:03:06,990 --> 00:03:10,189 son los tres básicos 87 00:03:10,189 --> 00:03:14,259 hay 88 00:03:14,259 --> 00:03:17,039 las versiones estas 89 00:03:17,039 --> 00:03:19,039 para estos dos 90 00:03:19,039 --> 00:03:21,300 las versiones con uno solo 91 00:03:21,300 --> 00:03:24,889 que 92 00:03:24,889 --> 00:03:30,919 las versiones con uno solo 93 00:03:30,919 --> 00:03:33,000 que diréis porque hay dos 94 00:03:33,000 --> 00:03:34,219 versiones, con uno y con dos. 95 00:03:34,740 --> 00:03:36,460 Pues bueno, tiene su mira. 96 00:03:37,319 --> 00:03:38,039 Tendremos que verlo. 97 00:03:38,460 --> 00:03:39,400 No nos queda otra. 98 00:03:40,300 --> 00:03:42,879 Y este operador extraño, que ya nos apareció en un text, 99 00:03:42,939 --> 00:03:44,659 que este es más raro de usar, porque no 100 00:03:44,659 --> 00:03:47,199 expresa situaciones muy naturales. 101 00:03:47,759 --> 00:03:48,979 Las aplicaciones gestionan 102 00:03:48,979 --> 00:03:50,840 cosas de la vida real, entonces no están 103 00:03:50,840 --> 00:03:52,960 para hacer cosas extrañas. 104 00:03:53,719 --> 00:03:54,939 Este operador es 105 00:03:54,939 --> 00:03:56,259 más raro. Este es el 106 00:03:56,259 --> 00:03:59,120 O exclusivo. Este es cierto 107 00:03:59,120 --> 00:04:00,340 si lo es 108 00:04:00,340 --> 00:04:02,539 solo una de las dos. 109 00:04:03,000 --> 00:04:05,240 luego es distinto que este 110 00:04:05,240 --> 00:04:07,620 este es cierto 111 00:04:07,620 --> 00:04:08,599 si lo es esta 112 00:04:08,599 --> 00:04:10,120 o si lo es esta 113 00:04:10,120 --> 00:04:11,759 o si lo son las dos también 114 00:04:11,759 --> 00:04:14,259 o esta o la otra o las dos 115 00:04:14,259 --> 00:04:16,300 pero este de abajo 116 00:04:16,300 --> 00:04:18,699 si las dos fueran ciertas 117 00:04:18,699 --> 00:04:20,339 la compuesta es falsa 118 00:04:20,339 --> 00:04:22,199 tiene que ser una de las dos 119 00:04:22,199 --> 00:04:24,819 por eso se llama el or exclusivo 120 00:04:24,819 --> 00:04:25,600 ¿vale? 121 00:04:26,279 --> 00:04:26,759 ¿vale? 122 00:04:26,759 --> 00:04:38,360 Claro, tú pones un if 123 00:04:38,360 --> 00:04:39,720 Y aquí la condición que sea 124 00:04:39,720 --> 00:04:42,259 Pues imagina, si pones este operador 125 00:04:42,259 --> 00:04:43,819 Pues entrará en el if 126 00:04:43,819 --> 00:04:46,180 Si se cumple esta y esta 127 00:04:46,180 --> 00:04:48,480 Una de las dos, pero solo una 128 00:04:48,480 --> 00:04:50,579 Si tú pusieras un or 129 00:04:50,579 --> 00:04:51,680 Que son las dos barritas 130 00:04:51,680 --> 00:04:53,300 Una de las dos o las dos 131 00:04:53,300 --> 00:04:54,259 Vale 132 00:04:54,259 --> 00:04:56,620 vale 133 00:04:56,620 --> 00:05:03,620 si esto se movía 134 00:05:03,620 --> 00:05:05,240 ya no se mueve 135 00:05:05,240 --> 00:05:07,720 esto claro 136 00:05:07,720 --> 00:05:09,860 como son de muy baja calidad pues ya nos hemos 137 00:05:09,860 --> 00:05:11,060 cargado el este de tanto 138 00:05:11,060 --> 00:05:13,240 yo creo 139 00:05:13,240 --> 00:05:15,540 si 140 00:05:15,540 --> 00:05:18,060 debería pero ya me lo he cargado 141 00:05:18,060 --> 00:05:18,480 yo creo 142 00:05:18,480 --> 00:05:25,819 a ver son las de low cost 143 00:05:25,819 --> 00:05:26,920 de la comunidad de Madrid 144 00:05:26,920 --> 00:05:28,920 entonces 145 00:05:28,920 --> 00:05:33,279 prueba las flechitas 146 00:05:33,279 --> 00:05:33,860 de los lados 147 00:05:33,860 --> 00:05:37,339 se ve que el ordenador 148 00:05:37,339 --> 00:05:37,839 se ha congelado 149 00:05:37,839 --> 00:05:39,100 le he quitado el táctil 150 00:05:39,100 --> 00:05:39,759 pero no 151 00:05:39,759 --> 00:05:55,100 lo que yo quiero es que sea 152 00:05:55,100 --> 00:05:56,779 la de mi ordenador táctil 153 00:05:56,779 --> 00:05:58,720 que esto me lo ha hecho de siempre, de toda la vida 154 00:05:58,720 --> 00:06:00,759 yo podría aquí seleccionar 155 00:06:00,759 --> 00:06:02,680 pero bueno, da igual 156 00:06:02,680 --> 00:06:03,740 si da lo mismo 157 00:06:03,740 --> 00:06:06,560 vale, era para ver si teníamos 158 00:06:06,560 --> 00:06:08,079 algo más debajo interesante 159 00:06:08,079 --> 00:06:12,699 no, vale, esto lo explica 160 00:06:12,699 --> 00:06:14,480 un poquito, nos da un poco igual 161 00:06:14,480 --> 00:06:15,980 true and false, bla bla bla 162 00:06:15,980 --> 00:06:19,160 todo esto lo podéis leer, bla bla bla 163 00:06:19,160 --> 00:06:20,019 vale 164 00:06:20,019 --> 00:06:26,259 venga, a ver 165 00:06:26,259 --> 00:06:29,730 vamos a verlo 166 00:06:29,730 --> 00:06:34,800 Ejemplológicos 167 00:06:34,800 --> 00:06:44,550 Ahora con los ejemplos 168 00:06:44,550 --> 00:06:46,350 Vamos a ver porque hay dos versiones 169 00:06:46,350 --> 00:06:47,970 Vamos a verlo 170 00:06:47,970 --> 00:06:49,449 Porque 171 00:06:49,449 --> 00:06:51,829 Puede la curiosidad 172 00:06:51,829 --> 00:06:54,050 Vale 173 00:06:54,050 --> 00:06:56,209 Pues an orino 174 00:06:56,209 --> 00:06:57,490 Ya sabemos, por ejemplo 175 00:06:57,490 --> 00:07:00,129 Programa que 176 00:07:00,129 --> 00:07:01,649 Te pide 177 00:07:01,649 --> 00:07:03,089 Tu edad 178 00:07:03,089 --> 00:07:04,389 Y 179 00:07:04,389 --> 00:07:06,670 te tiene que decir 180 00:07:06,670 --> 00:07:07,550 si estás 181 00:07:07,550 --> 00:07:10,029 en condiciones de trabajar 182 00:07:10,029 --> 00:07:11,389 o lo que es lo mismo 183 00:07:11,389 --> 00:07:13,629 si eres mayor o igual de 16 184 00:07:13,629 --> 00:07:16,149 ¿se puede trabajar con 16 o 17? 185 00:07:16,670 --> 00:07:17,430 no solo con 18 186 00:07:17,430 --> 00:07:22,269 pues te dice 187 00:07:22,269 --> 00:07:23,629 si eres mayor o igual de 16 188 00:07:23,629 --> 00:07:26,089 y menor o igual de 189 00:07:26,089 --> 00:07:28,269 pues yo que sé, la edad que se jubile la gente ahora 190 00:07:28,269 --> 00:07:30,490 Venga 191 00:07:30,490 --> 00:07:50,360 Venga, pues formulario que le metemos aquí a un tío 192 00:07:50,360 --> 00:07:52,379 Para decirle 193 00:07:52,379 --> 00:07:54,680 No, no, no pidas trabajo 194 00:07:54,680 --> 00:07:56,079 Porque no puedes 195 00:07:56,079 --> 00:07:59,620 Le decimos 196 00:07:59,620 --> 00:08:04,220 Introduce tu edad 197 00:08:04,220 --> 00:08:09,279 Ala 198 00:08:09,279 --> 00:08:12,740 la variable edad es un entero 199 00:08:12,740 --> 00:08:17,110 y la leemos 200 00:08:17,110 --> 00:08:20,730 ahora 201 00:08:20,730 --> 00:08:23,149 ahora tenemos que pensar 202 00:08:23,149 --> 00:08:24,930 este programa 203 00:08:24,930 --> 00:08:25,790 ¿qué tiene que hacer? 204 00:08:26,509 --> 00:08:28,810 pues me tiene que mostrar una cosa 205 00:08:28,810 --> 00:08:30,990 u otra en función de una 206 00:08:30,990 --> 00:08:33,230 condición, pues ya automáticamente 207 00:08:33,230 --> 00:08:35,049 después de haber entendido el programa 208 00:08:35,049 --> 00:08:36,590 y haber empezado a diseñarlo un poco más 209 00:08:36,590 --> 00:08:38,570 ya identificamos el término 210 00:08:38,570 --> 00:08:40,850 uy, condición, vale, condición, genial 211 00:08:40,850 --> 00:08:42,789 mi programa depende 212 00:08:42,789 --> 00:08:43,950 de una condición 213 00:08:43,950 --> 00:08:46,370 lo que le va a contestar al tío. 214 00:08:46,470 --> 00:08:47,610 Depende de una condición. 215 00:08:47,710 --> 00:08:50,549 Pues no pasa nada. 216 00:08:50,669 --> 00:08:52,490 Me hago yo aquí mi boolean maravilloso 217 00:08:52,490 --> 00:08:55,039 para 218 00:08:55,039 --> 00:09:00,090 guardar esa condición. 219 00:09:01,250 --> 00:09:02,230 Vale. Y ahora, 220 00:09:02,350 --> 00:09:04,230 ¿qué condición me interesa a mí reflejar? 221 00:09:05,190 --> 00:09:05,789 Me han dicho 222 00:09:05,789 --> 00:09:07,669 que esa persona 223 00:09:07,669 --> 00:09:09,909 esté en condiciones de trabajar. 224 00:09:11,090 --> 00:09:12,330 Pero claro, en Java 225 00:09:12,330 --> 00:09:14,610 no existe la condición de estar en condiciones de trabajar. 226 00:09:14,889 --> 00:09:16,330 Entonces tengo que traducirla 227 00:09:16,330 --> 00:09:17,210 lengua fijada 228 00:09:17,210 --> 00:09:20,490 si depende de la edad 229 00:09:20,490 --> 00:09:22,169 que es de lo único que puede depender 230 00:09:22,169 --> 00:09:23,210 será 231 00:09:23,210 --> 00:09:25,909 mayor o igual que 18 232 00:09:25,909 --> 00:09:28,470 ¿y solo con que sea mayor o igual que 18 ya puede trabajar? 233 00:09:29,610 --> 00:09:30,049 no 234 00:09:30,049 --> 00:09:32,110 también tiene que ser menor o igual 235 00:09:32,110 --> 00:09:34,490 que 70, dejémoslo en 70 236 00:09:34,490 --> 00:09:35,889 entonces 237 00:09:35,889 --> 00:09:38,210 esa es una condición ya compuesta 238 00:09:38,210 --> 00:09:40,529 porque es el i lógico 239 00:09:40,529 --> 00:09:41,309 de dos cosas 240 00:09:41,309 --> 00:09:43,110 mayor o igual que 18 241 00:09:43,110 --> 00:09:45,690 y menor o igual que 70 242 00:09:46,509 --> 00:09:54,690 Luego, es una condición igual, pero identifico, ya solo con el hecho de decirlo yo de palabra, de mi viva voz, me di cuenta de que es una condición compuesta. 243 00:09:56,649 --> 00:10:13,629 Entonces, será el compuesto de edad mayor o igual que 18 y, y como el i me han dicho que es el doble ampersand, pues yo lo pongo. 244 00:10:13,629 --> 00:10:15,629 Y edad 245 00:10:15,629 --> 00:10:18,210 Menor o igual que 70 246 00:10:18,210 --> 00:10:18,710 Por ejemplo 247 00:10:18,710 --> 00:10:21,590 Ponemos, por ejemplo 248 00:10:21,590 --> 00:10:23,710 Porque si tú eres profe de universidad 249 00:10:23,710 --> 00:10:24,789 Puedes trabajar hasta los 70 250 00:10:24,789 --> 00:10:31,480 O de instituto 251 00:10:31,480 --> 00:10:36,470 Podríamos estar aquí hasta los 70 252 00:10:36,470 --> 00:10:39,289 Vale 253 00:10:39,289 --> 00:10:45,529 Vale 254 00:10:45,529 --> 00:10:47,830 Entonces 255 00:10:47,830 --> 00:10:49,509 Ahora le decimos al tío 256 00:10:49,509 --> 00:10:55,840 Puedes trabajar 257 00:10:55,840 --> 00:11:00,240 Y ponemos el resultado de la condición 258 00:11:00,240 --> 00:11:16,759 Pues sí 259 00:11:16,759 --> 00:11:20,519 Puedes trabajar con 56 años 260 00:11:20,519 --> 00:11:21,779 Vale 261 00:11:21,779 --> 00:11:25,889 Vale, entonces 262 00:11:25,889 --> 00:11:27,690 El operador AND está entendido 263 00:11:27,690 --> 00:11:30,049 Sirve para unir dos condiciones 264 00:11:30,049 --> 00:11:33,389 La global será cierta 265 00:11:33,389 --> 00:11:35,330 Si lo son cualquiera de las dos 266 00:11:35,330 --> 00:11:37,210 ¿Vale? 267 00:11:37,210 --> 00:11:38,169 El OR 268 00:11:38,169 --> 00:11:40,250 Pues ya sabemos el sentido que tiene 269 00:11:40,250 --> 00:11:42,690 La global será cierta si lo es una de las dos 270 00:11:42,690 --> 00:11:54,220 Por ejemplo, vamos a poner la condición 271 00:11:54,220 --> 00:11:57,179 Con la edad 272 00:11:57,179 --> 00:11:59,659 Condición 1 273 00:11:59,659 --> 00:12:02,539 Vamos a expresar que además le queremos decir al tío 274 00:12:02,539 --> 00:12:09,799 Vale, pues vamos a expresar que 275 00:12:09,799 --> 00:12:12,179 Eres niño 276 00:12:13,700 --> 00:12:18,200 El OR es un operador 277 00:12:18,200 --> 00:12:20,799 Que une un boolean con otro boolean 278 00:12:20,799 --> 00:12:24,639 Claro, porque es o esto o lo otro 279 00:12:24,639 --> 00:12:26,539 Entonces solamente puedes comprarlo 280 00:12:26,539 --> 00:12:27,139 En condiciones 281 00:12:27,139 --> 00:12:31,700 No, no, no 282 00:12:31,700 --> 00:12:33,299 Son operadores lógicos 283 00:12:33,299 --> 00:12:35,720 Que unen una condición con otra 284 00:12:35,720 --> 00:12:36,740 Para hacer una gordota 285 00:12:36,740 --> 00:12:38,539 Claro, entonces por ejemplo 286 00:12:38,539 --> 00:12:39,779 Si pusiéramos la condición 287 00:12:39,779 --> 00:12:41,759 Oye, ahora te voy a decir 288 00:12:41,759 --> 00:12:47,559 si eres niño o centenario. 289 00:12:47,799 --> 00:12:49,220 A ver si eres alguna de las dos cosas. 290 00:12:50,039 --> 00:12:51,440 Pues podría ser esto. 291 00:12:52,120 --> 00:12:55,299 Eres niño, menor o igual que 12 años, 292 00:12:55,980 --> 00:13:01,899 o eres centenario, mayor o igual que 100. 293 00:13:02,259 --> 00:13:03,600 Esta es otra condición válida. 294 00:13:04,259 --> 00:13:05,259 Con el operador OR. 295 00:13:05,259 --> 00:13:12,100 Esta se va a cumplir con el ALT-GR y el 1 en mi teclado. 296 00:13:14,100 --> 00:13:17,320 el oro exclusivo 297 00:13:17,320 --> 00:13:19,139 vale, pues a ver 298 00:13:19,139 --> 00:13:21,779 este por ejemplo, ¿dónde está la flechita 299 00:13:21,779 --> 00:13:22,620 aquí en el teclado? 300 00:13:27,320 --> 00:13:29,679 el oro exclusivo, pero es que no lo encuentro en el teclado 301 00:13:29,679 --> 00:13:33,779 a ver, podrán pasar 302 00:13:33,779 --> 00:13:35,460 40 años más y jamás 303 00:13:35,460 --> 00:13:37,419 usaré ese operador ni lo he usado 304 00:13:37,419 --> 00:13:38,620 en los últimos 200 305 00:13:38,620 --> 00:13:40,980 es que no lo encuentro 306 00:13:40,980 --> 00:13:42,720 ¿dónde está ese operador en el teclado? 307 00:13:45,639 --> 00:13:47,519 el sombrerillo ese 308 00:13:47,519 --> 00:13:55,899 Ah, joder, parezco tonta 309 00:13:55,899 --> 00:13:56,539 Si está aquí 310 00:13:56,539 --> 00:13:58,980 Vale, es que no lo usan en la vida ese operador 311 00:13:58,980 --> 00:14:01,120 Vale 312 00:14:01,120 --> 00:14:02,080 Este 313 00:14:02,080 --> 00:14:08,120 Claro, es que no lo puedes usar con string 314 00:14:08,120 --> 00:14:09,059 Es un operador 315 00:14:09,059 --> 00:14:10,620 Es booleano 316 00:14:10,620 --> 00:14:14,279 Claro, los que hemos visto aquí son todos lógicos 317 00:14:14,279 --> 00:14:14,720 Que son 318 00:14:14,720 --> 00:14:17,159 A partir de condiciones más sencillas 319 00:14:17,159 --> 00:14:18,279 Es una condición más gorda. 320 00:14:18,899 --> 00:14:25,399 Entonces, esta condición será cierta si es niño o si es centenario. 321 00:14:25,500 --> 00:14:25,980 Una de las dos. 322 00:14:26,039 --> 00:14:27,779 En este caso es que es imposible que sea las dos. 323 00:14:28,559 --> 00:14:30,440 Con lo cual, poner esto y poner el oro es lo mismo. 324 00:14:32,419 --> 00:14:42,059 Por ejemplo, vamos a cambiar esta condición a que sea entre 2 igual a 0. 325 00:14:42,879 --> 00:14:44,600 Vale, pensad en esta condición que he puesto. 326 00:14:45,580 --> 00:14:45,820 Vale. 327 00:14:45,820 --> 00:14:47,299 yo 328 00:14:47,299 --> 00:14:49,179 imaginaos 329 00:14:49,179 --> 00:14:52,179 a ver, esta condición 330 00:14:52,179 --> 00:14:54,399 imaginaos que meto yo 331 00:14:54,399 --> 00:14:55,139 como edad 332 00:14:55,139 --> 00:14:58,259 12, condición que será 333 00:14:58,259 --> 00:14:59,980 ¿true o false? rápido 334 00:14:59,980 --> 00:15:01,139 instantáneamente 335 00:15:01,139 --> 00:15:04,480 ¿false? 336 00:15:04,799 --> 00:15:06,259 porque las dos son true 337 00:15:06,259 --> 00:15:07,019 ¿vale? 338 00:15:07,799 --> 00:15:09,940 si le meto 17 339 00:15:09,940 --> 00:15:12,620 ¿qué me da esa condición? rápidamente 340 00:15:12,620 --> 00:15:14,980 ¿cómo que true? 341 00:15:15,820 --> 00:15:17,700 ¿False? Claro, si no es true o es false. 342 00:15:18,639 --> 00:15:19,480 ¿False? ¿Por qué? 343 00:15:19,960 --> 00:15:21,139 Porque las dos son falses. 344 00:15:21,779 --> 00:15:22,840 Las dos son falses. 345 00:15:25,299 --> 00:15:27,720 Pues eso, esta es falsa y esta es falsa. 346 00:15:29,139 --> 00:15:31,759 ¿Vale? Con lo cual, el oro exclusivo me da falso. 347 00:15:31,860 --> 00:15:36,179 El oro exclusivo me da falso con las dos true o falso con las dos falsas. 348 00:15:37,039 --> 00:15:40,820 Entonces, si yo ahora le digo el 5, ¿qué me da? ¿True o falso? 349 00:15:41,820 --> 00:15:42,220 True. 350 00:15:42,220 --> 00:15:47,399 True, porque esta es cierta y esta es falsa 351 00:15:47,399 --> 00:15:48,120 ¿Vale? 352 00:15:48,700 --> 00:15:51,159 Y si le doy el 24 353 00:15:51,159 --> 00:15:52,580 ¿Me da true o falsa? 354 00:15:55,120 --> 00:15:55,600 ¡No! 355 00:15:58,019 --> 00:15:59,960 Me da true, porque esta es falsa 356 00:15:59,960 --> 00:16:00,779 Y esta es true 357 00:16:00,779 --> 00:16:03,639 Si le doy 24 358 00:16:03,639 --> 00:16:04,279 Me da true 359 00:16:04,279 --> 00:16:07,299 Si le doy 12, me da falsa 360 00:16:07,299 --> 00:16:08,720 ¿Vale? 361 00:16:08,720 --> 00:16:11,120 O sea, entonces el piquito este 362 00:16:11,120 --> 00:16:11,740 Es or 363 00:16:11,740 --> 00:16:13,860 Oro exclusivo 364 00:16:13,860 --> 00:16:16,120 Es decir, o una o la otra 365 00:16:16,120 --> 00:16:17,580 Pero nunca ninguna 366 00:16:17,580 --> 00:16:18,860 Pero no las dos a la vez 367 00:16:18,860 --> 00:16:21,340 Colozón 368 00:16:21,340 --> 00:16:23,580 Nunca jamás en vuestra vida lo vais a ver 369 00:16:23,580 --> 00:16:27,720 Pero para qué lo preguntas 370 00:16:27,720 --> 00:16:30,740 Bueno, pues ahora ya lo habéis entendido 371 00:16:30,740 --> 00:16:34,240 Ese es el oro no exclusivo 372 00:16:34,240 --> 00:16:35,960 Esa sí es más interesante 373 00:16:35,960 --> 00:16:38,299 Esta 374 00:16:38,299 --> 00:16:43,039 Esta ya sí tiene un sentido real 375 00:16:43,039 --> 00:16:44,340 Cuando tú dices 376 00:16:44,340 --> 00:16:45,740 O una o la otra 377 00:16:45,740 --> 00:16:48,120 También te vale cuando son las dos 378 00:16:48,120 --> 00:16:50,519 Esto ya tiene un sentido real 379 00:16:50,519 --> 00:16:52,159 Esto es cierto 380 00:16:52,159 --> 00:16:53,240 Si lo es una 381 00:16:53,240 --> 00:16:54,980 O si es lo a otra 382 00:16:54,980 --> 00:16:56,340 O las dos, ¿vale? 383 00:16:56,440 --> 00:16:57,980 O sea, es al menos una de las dos 384 00:16:57,980 --> 00:16:59,019 ¿Vale? Esto 385 00:16:59,019 --> 00:17:02,139 Si al menos una de las dos es cierta 386 00:17:02,139 --> 00:17:03,059 El total es cierto 387 00:17:03,059 --> 00:17:05,640 Que eso sí que tiene un sentido en la vida real 388 00:17:05,640 --> 00:17:06,660 ¿Vale? 389 00:17:06,660 --> 00:17:09,460 normalmente no nos ponemos tan exclusivos 390 00:17:09,460 --> 00:17:10,619 o esto 391 00:17:10,619 --> 00:17:11,920 o esto otro 392 00:17:11,920 --> 00:17:14,240 como sean las dos, no 393 00:17:14,240 --> 00:17:16,619 o esto o esto otro, normalmente dices 394 00:17:16,619 --> 00:17:18,839 me valen las dos cosas, me vale esta 395 00:17:18,839 --> 00:17:20,839 me vale esta, pero me valdrían las dos también 396 00:17:20,839 --> 00:17:22,680 es un sentido real 397 00:17:22,680 --> 00:17:24,079 pues este es el 398 00:17:24,079 --> 00:17:26,000 normal, entonces 399 00:17:26,000 --> 00:17:28,519 si aquí le damos 400 00:17:28,519 --> 00:17:30,859 24, me da true 401 00:17:30,859 --> 00:17:33,140 si le damos 12, me da true 402 00:17:33,140 --> 00:17:35,059 si le damos 7 403 00:17:35,059 --> 00:17:36,279 me da true 404 00:17:36,279 --> 00:17:38,859 ¿Vale? 405 00:17:39,279 --> 00:17:42,200 Pero si le damos 25 406 00:17:42,200 --> 00:17:45,119 Me da falso 407 00:17:45,119 --> 00:17:47,460 O sea, solo me daría falso 408 00:17:47,460 --> 00:17:49,599 Para los impares mayores de 13 409 00:17:49,599 --> 00:17:50,819 ¿Verdad? 410 00:17:51,539 --> 00:17:54,460 Para los impares mayores de 13 me da falso 411 00:17:54,460 --> 00:17:58,720 Para el resto de números me da falso 412 00:17:58,720 --> 00:18:01,720 Para los impares mayores de 13, falso 413 00:18:01,720 --> 00:18:03,299 ¿Vale? 414 00:18:06,279 --> 00:18:10,920 ¿Cómo, cómo, cómo que te he roto? 415 00:18:10,960 --> 00:18:11,460 No puede ser 416 00:18:11,460 --> 00:18:15,740 A ver, esta condición es cierta 417 00:18:15,740 --> 00:18:16,799 Si el número es par, ¿verdad? 418 00:18:18,099 --> 00:18:18,960 Luego el or 419 00:18:18,960 --> 00:18:20,539 Solo será falso 420 00:18:20,539 --> 00:18:22,400 Si son falsas las dos 421 00:18:22,400 --> 00:18:25,599 Es decir, mayor que doce 422 00:18:25,599 --> 00:18:26,720 E impar 423 00:18:26,720 --> 00:18:31,230 Solo para eso son falsas las dos 424 00:18:31,230 --> 00:18:33,569 Para cualquier otro caso 425 00:18:33,569 --> 00:18:34,769 Una de las dos es true 426 00:18:34,769 --> 00:18:37,349 Y con que una de las dos sea true 427 00:18:37,349 --> 00:18:38,829 O las dos, por supuesto 428 00:18:38,829 --> 00:18:41,069 Según que una de las dos lo sea, la total ya es true 429 00:18:41,069 --> 00:18:42,029 ¿Vale? 430 00:18:43,069 --> 00:18:44,650 Entonces, and y or 431 00:18:44,650 --> 00:18:47,470 Tienen el sentido normal 432 00:18:47,470 --> 00:18:50,109 Dos condiciones unidas con el and 433 00:18:50,109 --> 00:18:52,470 La total es cierta si lo son las dos 434 00:18:52,470 --> 00:18:53,769 Con que una sea falsa 435 00:18:53,769 --> 00:18:56,109 Falsa la total 436 00:18:56,109 --> 00:18:57,130 Y el or 437 00:18:57,130 --> 00:19:00,589 La total es cierta 438 00:19:00,589 --> 00:19:02,890 Con que lo sea al menos una 439 00:19:02,890 --> 00:19:04,690 Me da igual cuál de las dos 440 00:19:04,690 --> 00:19:05,990 Con que lo sea al menos una 441 00:19:05,990 --> 00:19:07,890 y por supuesto 442 00:19:07,890 --> 00:19:08,710 si no son las dos 443 00:19:08,710 --> 00:19:10,690 la total es cierta 444 00:19:10,690 --> 00:19:11,170 ¿vale? 445 00:19:14,269 --> 00:19:14,789 claro 446 00:19:14,789 --> 00:19:17,089 ¿cómo averiguas tú si un número es par? 447 00:19:17,190 --> 00:19:18,569 y a todo su resto dice 3-0 448 00:19:18,569 --> 00:19:19,589 ¿vale? 449 00:19:31,670 --> 00:19:32,430 vale 450 00:19:32,430 --> 00:19:33,150 ahora 451 00:19:33,150 --> 00:19:35,410 antes de irnos 452 00:19:35,410 --> 00:19:37,029 podemos irnos ya 453 00:19:37,029 --> 00:19:38,589 a la pregunta natural 454 00:19:38,589 --> 00:19:41,849 ¿Y por qué hay dos variantes? 455 00:19:45,549 --> 00:19:46,309 Vale 456 00:19:46,309 --> 00:19:48,630 ¿Estamos preparados para 457 00:19:48,630 --> 00:19:50,230 Saberlo? 458 00:19:51,990 --> 00:19:53,990 Dos variantes del AND y del OR 459 00:19:53,990 --> 00:19:56,069 ¿Vale? 460 00:19:56,569 --> 00:19:57,329 Porque 461 00:19:57,329 --> 00:19:59,990 Este programa 462 00:19:59,990 --> 00:20:02,609 También lo puedo hacer yo 463 00:20:02,609 --> 00:20:05,849 Con el operador AND 464 00:20:05,849 --> 00:20:07,210 En su otra variante 465 00:20:07,210 --> 00:20:09,609 Que sería este 466 00:20:09,609 --> 00:20:12,680 ¿Verdad? 467 00:20:14,160 --> 00:20:15,619 Porque me han dicho 468 00:20:15,619 --> 00:20:17,559 Que lo puedo usar 469 00:20:17,559 --> 00:20:19,480 Con el doble y con el simple 470 00:20:19,480 --> 00:20:21,619 De hecho si lo ejecutamos 471 00:20:21,619 --> 00:20:23,579 Yo le meto 472 00:20:23,579 --> 00:20:25,519 Introduce tu edad, 67 473 00:20:25,519 --> 00:20:27,099 Puedes trabajar 474 00:20:27,099 --> 00:20:29,700 Introduce tu edad 475 00:20:29,700 --> 00:20:31,240 45 476 00:20:31,240 --> 00:20:32,720 Puedes trabajar 477 00:20:32,720 --> 00:20:33,200 ¿Vale? 478 00:20:35,900 --> 00:20:38,519 3, pues no puedes 479 00:20:38,519 --> 00:20:40,680 Entonces, jolín, si es que hace lo mismo 480 00:20:40,680 --> 00:20:42,339 ¿Por qué hay dos variantes? 481 00:20:43,599 --> 00:20:44,740 Vale, pues hay dos variantes. 482 00:20:45,460 --> 00:20:46,779 Funcionan de forma distinta. 483 00:20:46,880 --> 00:20:49,579 O sea, no tiene sentido que haya dos formas de hacerla. 484 00:20:50,000 --> 00:20:50,299 Eso. 485 00:20:50,779 --> 00:20:51,140 ¿Para qué? 486 00:20:51,240 --> 00:20:54,680 ¿Para qué se va a inventar el lenguaje de programación? 487 00:20:55,200 --> 00:20:57,700 ¿Para qué se va a inventar dos símbolos si hacen lo mismo? 488 00:20:57,819 --> 00:20:58,940 Es que no hacen lo mismo. 489 00:21:00,259 --> 00:21:03,380 A ver, ¿cómo funciona el doble de arriba? 490 00:21:05,099 --> 00:21:08,819 La máquina virtual evalúa la primera condición. 491 00:21:08,819 --> 00:21:11,700 imaginaos que esta es falsa 492 00:21:11,700 --> 00:21:15,160 porque yo he metido D 493 00:21:15,160 --> 00:21:19,059 entonces cuando la máquina virtual ve que esta es falsa 494 00:21:19,059 --> 00:21:22,400 la siguiente condición es que le da exactamente igual 495 00:21:22,400 --> 00:21:25,339 porque la total va a ser falsa 496 00:21:25,339 --> 00:21:27,940 porque el AND necesita que las dos sean true 497 00:21:27,940 --> 00:21:31,400 con lo cual si la primera es falsa 498 00:21:31,400 --> 00:21:33,059 esta ni la mira 499 00:21:33,059 --> 00:21:35,519 la tira a la basura como si no existiera 500 00:21:35,519 --> 00:21:38,359 y ya devuelve el resultado 501 00:21:38,359 --> 00:21:40,480 falso, para condicionar. 502 00:21:42,779 --> 00:21:43,940 Sin embargo, ¿qué hace 503 00:21:43,940 --> 00:21:44,839 la máquina virtual 504 00:21:44,839 --> 00:21:49,720 si se encuentra la versión con solo 505 00:21:49,720 --> 00:21:50,319 un operador? 506 00:21:51,720 --> 00:21:53,839 Pues, la estamos 507 00:21:53,839 --> 00:21:55,640 obligando, aunque no le haga 508 00:21:55,640 --> 00:21:57,839 ninguna falta, a evaluar 509 00:21:57,839 --> 00:21:58,420 esta también. 510 00:21:59,980 --> 00:22:01,339 Está perdiendo el tiempo. 511 00:22:01,759 --> 00:22:04,019 Si solo se encuentra el operador, la máquina virtual 512 00:22:04,019 --> 00:22:05,519 evalúa la primera. 513 00:22:07,019 --> 00:22:08,000 Si es falso, 514 00:22:08,000 --> 00:22:10,240 es que me da igual como sea la segunda 515 00:22:10,240 --> 00:22:11,160 me da igual 516 00:22:11,160 --> 00:22:14,720 pero no me queda más remedio 517 00:22:14,720 --> 00:22:16,740 que evaluarla, porque me han puesto 518 00:22:16,740 --> 00:22:19,140 el operador con un solo símbolo 519 00:22:19,140 --> 00:22:20,519 entonces la evalúo 520 00:22:20,519 --> 00:22:22,720 me da igual lo que me dé, por la otra más el pausa 521 00:22:22,720 --> 00:22:24,599 entonces diré 522 00:22:24,599 --> 00:22:26,960 ¿y para qué narices? ¿qué sentido tiene 523 00:22:26,960 --> 00:22:29,059 que le obliguemos a evaluar 524 00:22:29,059 --> 00:22:31,460 una condición cuando el resultado 525 00:22:31,460 --> 00:22:32,880 le va a dar lo mismo 526 00:22:32,880 --> 00:22:35,000 si aquí es falso? 527 00:22:35,420 --> 00:22:36,940 dejémosle siempre 528 00:22:36,940 --> 00:22:38,819 con el doble operador y que no lo evalúe. 529 00:22:39,900 --> 00:22:41,660 Vale, pues el sentido que tiene es 530 00:22:41,660 --> 00:22:47,480 que a la vez que hacemos una condición, 531 00:22:48,319 --> 00:22:50,559 podemos meter dentro, colar dentro, 532 00:22:51,220 --> 00:22:52,420 una asignación, por ejemplo. 533 00:22:55,009 --> 00:22:57,710 Es decir, imaginaos esta situación. 534 00:23:02,670 --> 00:23:03,690 Yo quiero... 535 00:23:04,849 --> 00:23:09,269 Claro, con el or lo mismo. 536 00:23:09,809 --> 00:23:10,910 Tú tienes la doble barra. 537 00:23:10,970 --> 00:23:13,589 Si la primera es true, le da igual lo que sea la segunda. 538 00:23:14,130 --> 00:23:18,190 Pero si pones la barra simple, le obligas a evaluar la segunda. 539 00:23:18,990 --> 00:23:22,670 Entonces, ¿en qué situaciones hay diferencia entre que evalúe y no? 540 00:23:23,730 --> 00:23:26,410 Pues, por ejemplo, imaginaos esta situación. 541 00:23:28,150 --> 00:23:38,720 Vamos a hacer aquí, a ver, voy a hacerlo en una clase distinta. 542 00:23:45,539 --> 00:23:47,259 Simple operado. 543 00:23:47,259 --> 00:23:54,859 Vamos a suponer un programa que pide dos edades, la edad del padre y del hijo 544 00:23:54,859 --> 00:24:03,140 Y te tiene que hacer una condición para mostrarte si la edad del padre es múltiplo de la del hijo, por ejemplo 545 00:24:03,140 --> 00:24:20,619 Vale, pues entonces, como vamos a leer por teclado, hacemos el escáner 546 00:24:40,529 --> 00:24:46,990 Aquí la variable para guardar la edad del padre y aquí la variable para guardar la edad del hijo 547 00:24:46,990 --> 00:24:49,049 Todavía no le vamos a dar valor 548 00:24:49,049 --> 00:24:51,470 Se supone que es un valor que vamos a leer ahora con el escáner 549 00:24:51,470 --> 00:24:53,869 Introduzca la del padre, introduzca la del hijo 550 00:24:53,869 --> 00:24:54,329 Vale 551 00:24:54,329 --> 00:24:57,210 Aquí vamos a dejar eso 552 00:24:57,210 --> 00:24:59,410 Ahora de pedir la del padre y del hijo 553 00:24:59,410 --> 00:25:01,690 Vamos a escribir primero la condición 554 00:25:01,690 --> 00:25:09,079 Vale 555 00:25:09,079 --> 00:25:11,319 Bueno, no, que sea múltiplo 556 00:25:11,319 --> 00:25:13,759 Necesito que sea una que ligue dos 557 00:25:13,759 --> 00:25:16,099 Que la edad del padre 558 00:25:16,099 --> 00:25:18,740 Que el padre sea 559 00:25:18,740 --> 00:25:20,740 La condición que vamos a poner es 560 00:25:20,740 --> 00:25:23,440 Que el padre sea mayor de edad 561 00:25:23,440 --> 00:25:28,359 Y que su edad 562 00:25:28,359 --> 00:25:31,140 Sea múltiplo de la de su hijo 563 00:25:31,140 --> 00:25:33,299 Venga, nos pueden 564 00:25:33,299 --> 00:25:35,039 Quién sabe, puede haber una aplicación 565 00:25:35,039 --> 00:25:36,539 Que le interese muchísimo esa condición 566 00:25:36,539 --> 00:25:41,779 Y que su edad sea múltiplo 567 00:25:41,779 --> 00:25:43,019 De la del hijo 568 00:25:43,019 --> 00:25:44,680 Vale 569 00:25:44,680 --> 00:25:46,940 Esa condición 570 00:25:46,940 --> 00:25:49,019 Sería el 571 00:25:49,019 --> 00:25:51,400 And de dos cosas, ¿verdad? 572 00:25:52,039 --> 00:25:53,359 Porque son dos cositas 573 00:25:53,359 --> 00:25:54,539 Esta y esta 574 00:25:54,539 --> 00:25:56,180 Vamos una por una 575 00:25:56,180 --> 00:25:58,720 La primera, padre mayor de edad 576 00:25:58,720 --> 00:26:00,619 Facilísima 577 00:26:00,619 --> 00:26:04,079 Padre mayor o igual que 18 578 00:26:04,079 --> 00:26:07,099 Vámonos a la segunda 579 00:26:07,099 --> 00:26:09,299 Pongo aquí el enter, la pongo abajo 580 00:26:09,299 --> 00:26:11,039 Para que, como mi letra es muy grande 581 00:26:11,039 --> 00:26:13,779 Edad del padre mayor o igual que 18 582 00:26:13,779 --> 00:26:14,579 Y 583 00:26:14,579 --> 00:26:19,019 Que la edad del padre sea múltiplo de la del hijo 584 00:26:19,019 --> 00:26:21,019 Es que el resto de dividir 585 00:26:21,019 --> 00:26:22,299 La del padre es la del hijo, sea cero 586 00:26:22,299 --> 00:26:23,940 Un número es múltiplo del otro 587 00:26:23,940 --> 00:26:25,460 Si el resto de dividir entre otro es cero 588 00:26:25,460 --> 00:26:28,160 Pues esa condición la podemos poner así 589 00:26:28,160 --> 00:26:30,960 El resto de dividir 590 00:26:30,960 --> 00:26:32,400 Edad del padre 591 00:26:32,400 --> 00:26:33,440 Entre la del hijo 592 00:26:33,440 --> 00:26:35,259 Igual a cero 593 00:26:35,259 --> 00:26:38,200 Muy apiñado, me está quedando todo 594 00:26:38,200 --> 00:26:43,890 ¿Vale? 595 00:26:44,329 --> 00:26:46,349 Esa sería la condición, me lo está poniendo en rojo 596 00:26:46,349 --> 00:26:48,730 Porque me dice, oye, ojo, que edad del padre y edad del hijo 597 00:26:48,730 --> 00:26:50,410 Está sin inicializar 598 00:26:50,410 --> 00:26:52,089 No puedo evaluar la condición 599 00:26:52,089 --> 00:26:54,970 Pero a falta de darle valor a la edad del padre e hijo 600 00:26:54,970 --> 00:26:55,750 Que no se lo hemos dado 601 00:26:55,750 --> 00:26:58,369 A falta de dárselo, la condición está bien puesta 602 00:26:58,369 --> 00:27:01,210 el padre mayor de edad 603 00:27:01,210 --> 00:27:01,829 y 604 00:27:01,829 --> 00:27:05,609 esta edad es múltiplo de esta otra 605 00:27:05,609 --> 00:27:06,329 vale, pero 606 00:27:06,329 --> 00:27:13,400 ¿el escáner se lo puedo poner a la padre 607 00:27:13,400 --> 00:27:15,220 y a la vieja y ya la posibilidad de aplicar? 608 00:27:15,259 --> 00:27:16,920 sí, sí, sí, podría ponerlo ahí 609 00:27:16,920 --> 00:27:19,339 no lo he puesto ahí a propósito para 610 00:27:19,339 --> 00:27:21,380 aplicar esto, vale, entonces está claro 611 00:27:21,380 --> 00:27:23,099 que aquí el único error que 612 00:27:23,099 --> 00:27:25,500 sale es porque no le he dado valor 613 00:27:25,500 --> 00:27:26,859 a esas variables, no le he dado valor 614 00:27:26,859 --> 00:27:28,900 bueno, pues resulta 615 00:27:28,900 --> 00:27:31,299 que a la vez que yo uso una variable 616 00:27:31,299 --> 00:27:33,299 en una condición, que aquí está 617 00:27:33,299 --> 00:27:35,420 bien usada, a la vez que la uso 618 00:27:35,420 --> 00:27:37,339 puedo aprovechar para darle valor. 619 00:27:38,059 --> 00:27:38,819 Es como meter 620 00:27:38,819 --> 00:27:41,299 una asignación dentro de 621 00:27:41,299 --> 00:27:43,519 una condición. No pasa nada, puedo hacerla. 622 00:27:44,220 --> 00:27:45,339 Es decir, a la vez 623 00:27:45,339 --> 00:27:46,599 que uso la edad del padre, 624 00:27:47,220 --> 00:27:49,380 a la vez puedo aprovechar y darle 625 00:27:49,380 --> 00:27:51,420 valor. Entonces, primero recibe 626 00:27:51,420 --> 00:27:53,079 el valor y luego ya 627 00:27:53,079 --> 00:27:55,059 se evalúa la condición. Entonces, yo podría 628 00:27:55,059 --> 00:27:57,259 aprovechar y darle el valor 629 00:27:57,259 --> 00:27:59,359 aquí mismo, que es 630 00:27:59,359 --> 00:28:00,400 el del scan. 631 00:28:01,299 --> 00:28:04,079 Next, int. 632 00:28:06,359 --> 00:28:06,799 ¿Vale? 633 00:28:08,420 --> 00:28:10,019 Entonces, yo podría hacer aquí. 634 00:28:11,880 --> 00:28:21,579 Si la edad del padre, siendo la edad del padre, el resultado, haciendo esta asignación, es mayor o igual que 18. 635 00:28:22,960 --> 00:28:25,240 Y aquí, la edad del padre ya se le ha asignado aquí. 636 00:28:25,359 --> 00:28:31,359 Voy a aprovechar aquí, a la vez que uso la variable, voy a aprovechar y voy a hacer una asignación y le asigno valor. 637 00:28:31,359 --> 00:28:33,480 edad del hijo 638 00:28:33,480 --> 00:28:36,039 igual a 639 00:28:36,039 --> 00:28:38,839 scan.nextint 640 00:28:38,839 --> 00:28:44,849 ¿vale? 641 00:28:45,009 --> 00:28:47,210 esto es raro, pero esto sí que se hace 642 00:28:47,210 --> 00:28:49,690 es decir, mi condición 643 00:28:49,690 --> 00:28:51,150 involucra variables 644 00:28:51,150 --> 00:28:53,430 está claro, pero es que 645 00:28:53,430 --> 00:28:55,509 cada variable que yo involucre 646 00:28:55,509 --> 00:28:56,430 ahí, si quiero 647 00:28:56,430 --> 00:28:59,210 puedo aprovechar y ya de paso asignarle un valor 648 00:28:59,210 --> 00:29:01,589 ¿vale? ya aprovecho 649 00:29:01,589 --> 00:29:03,509 pues es lo que he hecho 650 00:29:03,509 --> 00:29:05,170 aquí, a esta variable he aprovechado 651 00:29:05,170 --> 00:29:06,089 le he asignado un valor 652 00:29:06,089 --> 00:29:08,849 y ya con ese valor asignado 653 00:29:08,849 --> 00:29:10,970 ya evaluará la condición 654 00:29:10,970 --> 00:29:14,690 aquí a este no hace falta 655 00:29:14,690 --> 00:29:16,049 que se lo asignara porque ya se lo ha asignado 656 00:29:16,049 --> 00:29:18,970 pero a este aprovecho que tengo que usar esta variable 657 00:29:18,970 --> 00:29:20,750 para ya de paso asignarle un valor 658 00:29:20,750 --> 00:29:22,890 y ya que una vez 659 00:29:22,890 --> 00:29:24,730 asignado, evalúo 660 00:29:24,730 --> 00:29:25,529 la condición 661 00:29:25,529 --> 00:29:28,430 luego esto siempre lo puedo hacer 662 00:29:28,430 --> 00:29:31,009 en una condición que usa variables 663 00:29:31,009 --> 00:29:33,069 aprovechar y asignarle 664 00:29:33,069 --> 00:29:34,470 un valor a esa variable 665 00:29:34,470 --> 00:29:36,529 antes de que ya la use para la condición 666 00:29:36,529 --> 00:29:47,910 Bueno, pues entonces aquí sí que es crítico el usar dos en situaciones como esta 667 00:29:47,910 --> 00:29:54,329 Aquí ya sí que es crítico usar aquí el doble o usar el simple 668 00:29:54,329 --> 00:29:57,710 ¿Por qué? Vamos ahora a ejecutar esto 669 00:29:59,049 --> 00:30:03,750 Imaginaos que el padre mete la edad y mete 13 años 670 00:30:03,750 --> 00:30:05,970 pues entonces 671 00:30:05,970 --> 00:30:08,150 trece años, lo primero que hace es la asignación 672 00:30:08,150 --> 00:30:10,029 trece, ahora compara 673 00:30:10,029 --> 00:30:12,130 padre trece menos dieciocho 674 00:30:12,130 --> 00:30:14,190 falso, pues aquí ya 675 00:30:14,190 --> 00:30:16,410 ni entra, porque es doble operador 676 00:30:16,410 --> 00:30:17,569 luego aquí ni entra 677 00:30:17,569 --> 00:30:19,630 luego al no haber entrado aquí 678 00:30:19,630 --> 00:30:21,410 nunca hace esta asignación 679 00:30:21,410 --> 00:30:24,190 cuando bajemos 680 00:30:24,190 --> 00:30:26,130 por aquí abajo, edad del 681 00:30:26,130 --> 00:30:27,990 padre tiene su valor, pero la del hijo 682 00:30:27,990 --> 00:30:29,390 jamás nos la ha pedido 683 00:30:29,390 --> 00:30:31,529 porque nunca jamás entró aquí 684 00:30:31,529 --> 00:30:33,289 porque esto es un doble año 685 00:30:33,289 --> 00:30:36,670 si hacemos una ejecución mañana 686 00:30:36,670 --> 00:30:38,369 y edad del padre 687 00:30:38,369 --> 00:30:40,170 27, ahora ya sí 688 00:30:40,170 --> 00:30:42,509 27 mayor o igual que 18 es true 689 00:30:42,509 --> 00:30:44,809 necesito entrar en la otra 690 00:30:44,809 --> 00:30:46,690 porque ahora ya sí que dependiendo 691 00:30:46,690 --> 00:30:48,150 de la otra será true o false 692 00:30:48,150 --> 00:30:50,049 ya así nos pedirá la del hijo 693 00:30:50,049 --> 00:30:54,990 ¿vale? porque esta ha sido true 694 00:30:54,990 --> 00:30:56,329 con lo cual ya sí que necesita 695 00:30:56,329 --> 00:30:58,609 pero si yo meto la edad del padre falsa 696 00:30:58,609 --> 00:31:00,829 nunca jamás nos pediría esta 697 00:31:00,829 --> 00:31:02,990 nunca, luego el hijo se quedaría sin edad 698 00:31:02,990 --> 00:31:04,990 que yo quiero 699 00:31:04,990 --> 00:31:07,049 forzar a que meta 700 00:31:07,049 --> 00:31:08,890 a la edad que meta, siempre 701 00:31:08,890 --> 00:31:10,950 entre en la segunda parte para hacer este 702 00:31:10,950 --> 00:31:11,289 scan 703 00:31:11,289 --> 00:31:14,829 quito eso y dejo 704 00:31:14,829 --> 00:31:16,630 un solo ampersand, vale 705 00:31:16,630 --> 00:31:21,559 con un doble ampersand 706 00:31:21,559 --> 00:31:23,299 solo va a hacer 707 00:31:23,299 --> 00:31:25,480 la segunda parte si la primera es true 708 00:31:25,480 --> 00:31:26,200 solo 709 00:31:26,200 --> 00:31:29,380 con un simple ampersand va a hacer las dos 710 00:31:29,380 --> 00:31:31,400 partes siempre, esa es 711 00:31:31,400 --> 00:31:33,460 la diferencia entre el doble ampersand y el 712 00:31:33,460 --> 00:31:39,079 uno, vale y de hecho lo podemos 713 00:31:39,079 --> 00:31:40,839 comprobar con el doble, por ejemplo 714 00:31:40,839 --> 00:31:43,119 Yo ejecuto esto 715 00:31:43,119 --> 00:31:44,740 Qué prisas 716 00:31:44,740 --> 00:31:49,700 Yo ejecuto esto 717 00:31:49,700 --> 00:31:56,470 Se me queda aquí esperando la edad del padre 718 00:31:56,470 --> 00:31:56,829 12 719 00:31:56,829 --> 00:31:58,809 El programa ha terminado 720 00:31:58,809 --> 00:32:00,150 Se ha quedado sin edad del hijo 721 00:32:00,150 --> 00:32:01,789 Ya está 722 00:32:01,789 --> 00:32:04,809 Pero por qué 723 00:32:04,809 --> 00:32:06,470 Si no se da permiso para salir 724 00:32:06,470 --> 00:32:07,269 Ni levantaros 725 00:32:07,269 --> 00:32:10,109 ¿Por qué? 726 00:32:10,950 --> 00:32:12,410 No se da permiso para que os vayáis 727 00:32:12,410 --> 00:32:18,319 Pues no se da permiso ni para respirar 728 00:32:18,319 --> 00:32:36,759 Vale, entonces, yo he metido 12 y como veis el programa ha terminado y no me ha pedido la del hijo ni ha pedido nada. Ahora ejecutamos. Voy a ponerle 27. Ahora sí que se queda esperando la del hijo. Ahora ya sí se queda esperando la del hijo. 729 00:32:36,759 --> 00:32:39,900 Porque he puesto un único ampersand 730 00:32:39,900 --> 00:32:41,420 Ah, bueno, perdón 731 00:32:41,420 --> 00:32:42,680 No porque lo haya puesto un único 732 00:32:42,680 --> 00:32:44,279 Sino porque al haberle puesto 27 733 00:32:44,279 --> 00:32:44,819 Esta es true 734 00:32:44,819 --> 00:32:47,000 Con lo cual necesita la otra 735 00:32:47,000 --> 00:32:48,380 Necesita la otra 736 00:32:48,380 --> 00:32:52,079 Que pongo solo un ampersand 737 00:32:52,079 --> 00:32:53,740 Me da igual que esta sea 738 00:32:53,740 --> 00:32:55,039 False, me da igual 739 00:32:55,039 --> 00:32:56,799 Va a entrar siempre en esta 740 00:32:56,799 --> 00:32:59,539 Porque el ampersand te obliga a evaluar la otra 741 00:32:59,539 --> 00:33:01,660 Luego, si yo le meto 12 742 00:33:01,660 --> 00:33:03,339 La del hijo me la va a seguir pidiendo 743 00:33:03,339 --> 00:33:04,259 Aunque no le hace falta 744 00:33:04,259 --> 00:33:06,740 Porque esta ya es false, ¿vale? 745 00:33:06,740 --> 00:33:18,160 Si yo le pongo aquí 12 con un simple ampersand, le pongo 12 y se queda esperando a la otra, aunque no le hace ninguna falta, ¿vale? 746 00:33:18,740 --> 00:33:20,420 Le pongo esta y terminado. 747 00:33:21,480 --> 00:33:24,299 Pues esa es la diferencia entre 1 y 2, ¿vale?