1 00:00:00,000 --> 00:00:04,540 Pues a ver, entonces cuidado porque a veces uno escribe rápido, le da un error de compilación 2 00:00:04,540 --> 00:00:11,419 y hombre, tal cual a uno le da un error de compilación por algo así, es que no tiene que perder ya a partir de hoy 3 00:00:11,419 --> 00:00:17,739 o después de su rato en casa de estudiarse la clase entera, ya no tiene que perder ni medio segundo 4 00:00:17,739 --> 00:00:21,820 en un error de compilación, uno quiere poner la condición en 1 igual a n2 5 00:00:21,820 --> 00:00:28,480 ya nunca jamás se le olvida que ser igual a es el doble igual, ¿vale? 6 00:00:28,480 --> 00:00:30,519 porque esta es la asignación 7 00:00:30,519 --> 00:00:33,079 si o si, no hay tutía 8 00:00:33,079 --> 00:00:34,039 esta es la asignación 9 00:00:34,039 --> 00:00:37,539 bueno, pues con los operadores relacionales 10 00:00:37,539 --> 00:00:38,820 se pueden construir condiciones 11 00:00:38,820 --> 00:00:41,520 y ahí hay algunos de los ejercicios, ejemplos de repaso que hiciste 12 00:00:41,520 --> 00:00:42,460 y ya Estefano 13 00:00:42,460 --> 00:00:44,039 os introdujo algunos 14 00:00:44,039 --> 00:00:46,700 para construir expresiones booleanas 15 00:00:46,700 --> 00:00:48,380 cosas que son verdad o mentira 16 00:00:48,380 --> 00:00:49,719 ¿vale? 17 00:00:51,159 --> 00:00:53,579 entonces sobre esto es que hay poco que decir 18 00:00:53,579 --> 00:00:59,200 fijaos que 19 00:00:59,200 --> 00:01:01,579 podemos combinar cosas 20 00:01:01,579 --> 00:01:04,079 yo pongo esto aquí y no he puesto nada extraño 21 00:01:04,079 --> 00:01:06,359 aquí que estaría haciendo 22 00:01:06,359 --> 00:01:08,540 estaría haciendo dos operaciones en una 23 00:01:08,540 --> 00:01:10,299 estaría haciendo 24 00:01:10,299 --> 00:01:12,760 primero, me olvido de esto 25 00:01:12,760 --> 00:01:15,659 n1 es igual a n2 26 00:01:15,659 --> 00:01:17,000 que si lo es 27 00:01:17,000 --> 00:01:18,280 true para acá 28 00:01:18,280 --> 00:01:20,000 que no, false para acá 29 00:01:20,000 --> 00:01:22,879 y ahora ya a n1 lo incremento 30 00:01:22,879 --> 00:01:24,459 luego el operador 31 00:01:24,459 --> 00:01:25,579 posincremento 32 00:01:25,579 --> 00:01:27,400 o el operador incremento y decremento 33 00:01:27,400 --> 00:01:29,480 se puede meter en cualquier expresión 34 00:01:29,480 --> 00:01:31,620 ahí a capón y significa lo que ya sabemos 35 00:01:31,620 --> 00:01:32,260 que significa 36 00:01:32,260 --> 00:01:35,540 ¿vale? por supuesto aquí habría mucha 37 00:01:35,540 --> 00:01:36,180 diferencia 38 00:01:36,180 --> 00:01:39,280 imaginaos que yo hago esto 39 00:01:39,280 --> 00:01:41,340 n1 igual a 3 40 00:01:41,340 --> 00:01:43,900 y n2 igual a 3 41 00:01:43,900 --> 00:01:45,620 ¿vale? condición 42 00:01:45,620 --> 00:01:46,920 ¿qué tendría? true o false 43 00:01:46,920 --> 00:01:49,680 si yo hago 44 00:01:49,680 --> 00:01:51,540 un sistema de condición ¿qué me daría? 45 00:01:58,989 --> 00:01:59,950 ¿me está escuchando alguien? 46 00:02:01,450 --> 00:02:02,310 true, muy bien 47 00:02:02,310 --> 00:02:03,590 vale, daría true 48 00:02:03,590 --> 00:02:05,870 ¿verdad? n1 es igual a n2 49 00:02:05,870 --> 00:02:28,340 sí es 3, y ahora ya incremento 3, pero claro, si yo hago esto, ahora, ahora, condición 50 00:02:28,340 --> 00:02:34,340 ¿qué sería? Sería falso, ¿verdad? Porque primero incremento en el 1, con lo cual se 51 00:02:34,340 --> 00:02:42,539 queda valiendo 4, ¿4 es igual que 3? No, daría falso, ¿vale? Entonces, de nuevo, repito, 52 00:02:42,539 --> 00:02:47,460 Este operador, incremento, decremento, se puede meter en cualquier expresión 53 00:02:47,460 --> 00:02:52,099 y significa que aparte de esa asignación se va a hacer otra 54 00:02:52,099 --> 00:02:59,719 y esa otra se hace antes o después en función de si el más más está antes o después. 55 00:03:00,340 --> 00:03:03,039 Y las implicaciones son grandes, obviamente. 56 00:03:04,699 --> 00:03:08,159 Bueno, pues operadores relacionales, es que no hay más. 57 00:03:08,159 --> 00:03:09,020 No hay más. 58 00:03:09,020 --> 00:03:31,379 el distinto, cuidado al principio poner el, la admiración en su sitio para, vale, bueno, pues nada, ahora, seguimos construyendo condiciones, las condiciones básicas, lo que se llaman las cláusulas, 59 00:03:31,379 --> 00:03:34,219 Una cláusula es una condición en realidad 60 00:03:34,219 --> 00:03:35,319 Es como un sinónimo, ¿no? 61 00:03:35,319 --> 00:03:36,319 Una cláusula de condición 62 00:03:36,319 --> 00:03:39,860 Bueno, pues las cláusulas básicas o condiciones básicas 63 00:03:39,860 --> 00:03:41,560 Se hacen en Java 64 00:03:41,560 --> 00:03:44,319 Relacionando números 65 00:03:44,319 --> 00:03:46,060 Con los operadores relacionales que hemos visto 66 00:03:46,060 --> 00:03:48,680 Vale, pero es que luego además 67 00:03:48,680 --> 00:03:51,300 Si tenemos varias condiciones 68 00:03:51,300 --> 00:03:53,120 Varias cosas que pueden ser true o false 69 00:03:53,120 --> 00:03:54,539 Además las ponemos 70 00:03:54,539 --> 00:03:56,759 Combinar con los operadores 71 00:03:56,759 --> 00:03:58,580 Que se llaman booleanos o lógicos 72 00:03:58,580 --> 00:04:00,360 Con estos de aquí 73 00:04:00,360 --> 00:04:03,889 vale 74 00:04:03,889 --> 00:04:06,110 entonces los operadores booleanos 75 00:04:06,110 --> 00:04:08,509 o operadores lógicos, como lo queréis llamar 76 00:04:08,509 --> 00:04:10,550 estos sirven para 77 00:04:10,550 --> 00:04:12,169 combinar condiciones 78 00:04:12,169 --> 00:04:14,830 cosas que son true o false 79 00:04:14,830 --> 00:04:17,110 no como los relacionales 80 00:04:17,110 --> 00:04:18,689 de arriba, los relacionales 81 00:04:18,689 --> 00:04:19,529 combinan números 82 00:04:19,529 --> 00:04:22,110 y el resultado es un boolean 83 00:04:22,110 --> 00:04:24,709 los booleanos me combinan 84 00:04:24,709 --> 00:04:25,370 condiciones 85 00:04:25,370 --> 00:04:28,490 y el resultado a su vez 86 00:04:28,490 --> 00:04:29,389 es una condición 87 00:04:29,389 --> 00:04:31,990 y esto me vale para hacer operaciones complejas 88 00:04:31,990 --> 00:04:55,860 Esto suena a todos de bachillerato o de la vida misma, de la vida misma, ¿no? Vale, pues estos operadores, los operadores lógicos o booleanos, si miráreis el documento diríais, uy, este es el operador AND, ahora viéndolo en un ejemplo lo vemos más claro. 89 00:04:55,860 --> 00:05:10,860 Es el operador AND, que ponemos dos condiciones, esta condición y esta condición. La condición completa será TRUE si las dos lo son. Solo con que una de las dos sea falsa, la condición completa es falsa. 90 00:05:10,860 --> 00:05:13,720 A y B aquí son condiciones 91 00:05:13,720 --> 00:05:14,560 no son números 92 00:05:14,560 --> 00:05:15,980 son condiciones 93 00:05:15,980 --> 00:05:18,139 el or está claro 94 00:05:18,139 --> 00:05:20,560 la condición completa 95 00:05:20,560 --> 00:05:22,180 es verdad 96 00:05:22,180 --> 00:05:25,660 si los dos lo son o solo uno de los dos 97 00:05:25,660 --> 00:05:26,620 es el or de toda la vida 98 00:05:26,620 --> 00:05:27,779 o esto o esto 99 00:05:27,779 --> 00:05:31,379 y solo será falsa si los dos lo son 100 00:05:31,379 --> 00:05:33,259 y este es el no 101 00:05:33,259 --> 00:05:34,139 el no lógico 102 00:05:34,139 --> 00:05:37,259 que se pone delante de una única condición 103 00:05:37,259 --> 00:05:39,680 y la condición que construye 104 00:05:39,680 --> 00:05:41,660 Pues es falsa si esta es verdadera 105 00:05:41,660 --> 00:05:43,459 Y es verdadera si esta es falsa, está claro 106 00:05:43,459 --> 00:05:45,519 El i, el o y el no 107 00:05:45,519 --> 00:05:46,779 Y el negado lógico 108 00:05:46,779 --> 00:05:51,699 ¿Vale? Y su operando en Java 109 00:05:51,699 --> 00:05:55,660 Hay dos versiones 110 00:05:55,660 --> 00:05:58,220 Para el an y el or 111 00:05:58,220 --> 00:05:59,379 Esta era olvidada 112 00:05:59,379 --> 00:06:00,860 Hay dos versiones 113 00:06:00,860 --> 00:06:03,279 Poniendo el simbolito dos veces o poniéndola una 114 00:06:03,279 --> 00:06:05,879 ¿Qué diferencia hay? 115 00:06:06,259 --> 00:06:07,939 Pues hombre, tiene sus implicaciones 116 00:06:07,939 --> 00:06:10,740 Vamos a verlo 117 00:06:10,740 --> 00:06:11,800 ¿Vale? 118 00:06:12,620 --> 00:06:20,910 A ver, venga, operadores lógicos, vámonos aquí. 119 00:06:30,139 --> 00:06:41,699 Vale, los operadores lógicos combinan condiciones para obtener otra condición. 120 00:06:42,540 --> 00:06:57,350 Sin embargo, los relacionales, lo voy a poner aquí, combinan números para obtener una condición. 121 00:06:57,350 --> 00:07:04,089 Esa es la diferencia para obtener una condición 122 00:07:04,089 --> 00:07:10,410 Vale, pues ejemplo 123 00:07:10,410 --> 00:07:14,189 Tenemos dos variables numéricas 124 00:07:14,189 --> 00:07:17,730 Como los ejemplitos de ayer que hicisteis en los ejercicios 125 00:07:17,730 --> 00:07:18,269 Algunos 126 00:07:18,269 --> 00:07:20,910 Pues el stock del almacén está 127 00:07:20,910 --> 00:07:23,430 Tenemos dos stocks de dos almacenes 128 00:07:23,430 --> 00:07:24,730 Stock del almacén 1 129 00:07:24,730 --> 00:07:27,670 Que a lo mejor tiene 76 130 00:07:27,670 --> 00:07:29,589 Me da igual leerlo por teclado 131 00:07:29,589 --> 00:07:32,329 y stock del almacén 2 132 00:07:32,329 --> 00:07:34,529 que a lo mejor tiene 133 00:07:34,529 --> 00:07:36,269 26 o me da igual 134 00:07:36,269 --> 00:07:37,170 leído por teclado 135 00:07:37,170 --> 00:07:40,509 entonces la condición de que el almacén 1 136 00:07:40,509 --> 00:07:42,209 tenga más stock que el almacén 2 137 00:07:42,209 --> 00:07:44,290 esa condición está clara 138 00:07:44,290 --> 00:07:47,709 almacén 1 más 139 00:07:47,709 --> 00:07:53,250 esa condición estaría clara 140 00:07:53,250 --> 00:07:55,009 esa condición sería 141 00:07:55,009 --> 00:07:58,769 stock 1 142 00:07:58,769 --> 00:08:00,370 mayor 143 00:08:00,370 --> 00:08:03,829 que stock2, ¿verdad? 144 00:08:05,189 --> 00:08:06,769 Esa condición está clara. 145 00:08:07,990 --> 00:08:08,629 Stock2. 146 00:08:09,829 --> 00:08:10,069 Vale. 147 00:08:11,050 --> 00:08:12,910 Pero ahora nos piden otra condición más compleja. 148 00:08:13,029 --> 00:08:14,290 La condición que nos piden es 149 00:08:14,290 --> 00:08:18,230 que el stock1 tenga, 150 00:08:18,709 --> 00:08:19,970 sea mayor que el stock2, 151 00:08:21,170 --> 00:08:22,050 pero además 152 00:08:22,050 --> 00:08:23,629 que ambos 153 00:08:23,629 --> 00:08:25,589 tengan un stock mayor que 0. 154 00:08:26,110 --> 00:08:28,230 Por ejemplo, vamos a expresar esta condición. 155 00:08:28,230 --> 00:08:54,090 Expresamos la condición de que el almacén 1 tenga más que el 2 y ambos mayor que 0 156 00:08:54,090 --> 00:08:57,409 Vamos a suponer que nos dicen esto 157 00:08:58,950 --> 00:09:04,289 Pues entonces, esta condición de arriba, esta es una más sencilla 158 00:09:04,289 --> 00:09:08,009 expresamos la condición 159 00:09:08,009 --> 00:09:20,039 esta estaría clara 160 00:09:20,039 --> 00:09:21,240 ¿vale? 161 00:09:22,779 --> 00:09:25,460 ahora, para expresar esta condición 162 00:09:25,460 --> 00:09:28,120 no lo puedo hacer con una condición sencilla 163 00:09:28,120 --> 00:09:28,879 como la de arriba 164 00:09:28,879 --> 00:09:29,960 la de arriba era sencilla 165 00:09:29,960 --> 00:09:31,240 stock 1 mayor que stock 2 166 00:09:31,240 --> 00:09:33,039 esta no, esta tengo que combinar 167 00:09:33,039 --> 00:09:34,000 porque es compleja 168 00:09:34,000 --> 00:09:34,620 esta es 169 00:09:34,620 --> 00:09:35,419 ¿vale? 170 00:09:35,879 --> 00:09:37,700 que el almacén 1 tenga más que el almacén 2 171 00:09:37,700 --> 00:09:40,059 pues 172 00:09:40,059 --> 00:09:43,100 lo podríamos hacer 173 00:09:43,100 --> 00:09:44,480 a esta condición la vamos a llamar 174 00:09:44,480 --> 00:09:45,700 condición 2 175 00:09:45,700 --> 00:09:47,899 para no alargarnos tanto 176 00:09:47,899 --> 00:09:50,299 pues podría ser 177 00:09:50,299 --> 00:09:52,700 stock 1 mayor que stock 2 178 00:09:52,700 --> 00:09:56,139 pero además 179 00:09:56,139 --> 00:09:58,120 esta condición necesita 180 00:09:58,120 --> 00:10:00,320 que se cumplan dos cosas simultáneamente 181 00:10:00,320 --> 00:10:02,659 que stock 1 sea mayor que stock 2 182 00:10:02,659 --> 00:10:04,039 y simultáneamente 183 00:10:04,039 --> 00:10:05,460 que almacén 1 184 00:10:05,460 --> 00:10:06,980 tenga mayor que 0 185 00:10:06,980 --> 00:10:09,340 y almacén 2 mayor que 0 186 00:10:09,340 --> 00:10:12,220 pues podría poner yo ahí 3 and lógicos 187 00:10:12,220 --> 00:10:12,600 ¿verdad? 188 00:10:14,539 --> 00:10:15,480 este and 189 00:10:15,480 --> 00:10:23,320 y yo puedo combinarlo con todos los 190 00:10:23,320 --> 00:10:24,460 que yo quiera 191 00:10:24,460 --> 00:10:26,940 y este otro and, almacén 2 192 00:10:26,940 --> 00:10:35,419 uy, stock, perdón 193 00:10:35,419 --> 00:10:47,519 esta sería 194 00:10:47,519 --> 00:10:49,159 otra cosa es que la podemos simplificar, ¿vale? 195 00:10:49,179 --> 00:10:51,179 pero eso es otro tema, esta sería 196 00:10:51,179 --> 00:10:53,559 la expresión tal cual de la condición 197 00:10:53,559 --> 00:10:54,840 de arriba, la expresión tal cual 198 00:10:54,840 --> 00:10:57,639 y para hacerla 199 00:10:57,639 --> 00:10:59,659 he necesitado el ilógico 200 00:10:59,659 --> 00:11:01,659 porque necesito que se 201 00:11:01,659 --> 00:11:03,360 cumplan simultáneamente 202 00:11:03,360 --> 00:11:04,940 las tres cosas, ¿vale? 203 00:11:04,940 --> 00:11:07,799 entonces el ilógico es que se cumplan 204 00:11:07,799 --> 00:11:08,860 simultáneamente 205 00:11:08,860 --> 00:11:11,519 las cosas que relacionan 206 00:11:11,519 --> 00:11:13,019 se tienen que cumplir simultáneamente 207 00:11:13,019 --> 00:11:15,019 solo con que una no se cumpla 208 00:11:15,019 --> 00:11:16,220 el resultado es falso 209 00:11:16,220 --> 00:11:19,019 entonces esto expresa lo de arriba tal cual 210 00:11:19,019 --> 00:11:19,860 ¿verdad? 211 00:11:20,659 --> 00:11:21,659 lo de arriba tal cual 212 00:11:21,659 --> 00:11:28,470 otra cosa es que yo pueda 213 00:11:28,470 --> 00:11:29,629 simplificar esta condición 214 00:11:29,629 --> 00:11:31,509 una vez que yo he expresado una condición 215 00:11:31,509 --> 00:11:33,990 una vez que ya la he expresado 216 00:11:33,990 --> 00:11:35,769 y veo que significa 217 00:11:35,769 --> 00:11:38,169 que expresa exactamente lo que me han pedido 218 00:11:38,169 --> 00:11:40,570 luego ya a lo mejor puedo mirarla 219 00:11:40,570 --> 00:11:42,049 y revisarla y simplificarla 220 00:11:42,049 --> 00:11:44,570 aquí podríamos a lo mejor escribirla más corta 221 00:11:44,570 --> 00:11:45,769 y simplificarla 222 00:11:45,769 --> 00:11:52,429 vale, a ver 223 00:11:52,429 --> 00:12:07,139 si se cumple que stock 1 224 00:12:07,139 --> 00:12:08,460 es mayor que stock 2 225 00:12:08,460 --> 00:12:10,720 y stock 2 es mayor que 0 226 00:12:10,720 --> 00:12:12,960 es que esto va a ser que sí 227 00:12:12,960 --> 00:12:14,120 seguro, ¿no? 228 00:12:15,299 --> 00:12:17,220 si stock 2 es mayor que 0 229 00:12:17,220 --> 00:12:19,299 y el 1 es mayor que el 2 230 00:12:19,299 --> 00:12:21,659 es que esto no hace falta 231 00:12:21,659 --> 00:12:22,820 va a ser mayor que 0 seguro 232 00:12:22,820 --> 00:12:26,899 Entonces, he puesto este ejemplito 233 00:12:26,899 --> 00:12:28,700 Lo he puesto simplemente porque a veces uno 234 00:12:28,700 --> 00:12:30,559 Expresa una condición 235 00:12:30,559 --> 00:12:33,559 Esa condición expresa tal cual la idea que le han dicho 236 00:12:33,559 --> 00:12:35,259 Vale, ya está, ya sí puedo tirar 237 00:12:35,259 --> 00:12:36,320 No hay ningún problema 238 00:12:36,320 --> 00:12:38,220 Eso expresa lo que nos han pedido 239 00:12:38,220 --> 00:12:40,659 Pero a veces nunca está de más 240 00:12:40,659 --> 00:12:42,059 En las expresiones que nos dan 241 00:12:42,059 --> 00:12:43,379 Hacerle un vistazo por arriba 242 00:12:43,379 --> 00:12:44,379 A ver si las podemos simplificar 243 00:12:44,379 --> 00:12:47,039 Y en este caso, efectivamente 244 00:12:47,039 --> 00:12:49,000 Si esto se da 245 00:12:49,000 --> 00:12:50,559 Y esto se da 246 00:12:50,559 --> 00:12:53,080 esta no necesito comprobarla 247 00:12:53,080 --> 00:12:54,639 no necesito, ¿verdad? 248 00:12:54,740 --> 00:12:55,659 no necesito comprobarla 249 00:12:55,659 --> 00:12:57,240 entonces esta expresión 250 00:12:57,240 --> 00:12:59,759 la podríamos poner simplemente 251 00:12:59,759 --> 00:13:01,860 quitándole esto 252 00:13:01,860 --> 00:13:02,940 ¿verdad? 253 00:13:03,539 --> 00:13:05,460 vamos a volverla a poner aquí 254 00:13:05,460 --> 00:13:06,419 quitándole eso 255 00:13:06,419 --> 00:13:09,159 poniendo aquí 256 00:13:09,159 --> 00:13:14,559 más simple 257 00:13:14,559 --> 00:13:20,350 la condición 2 más simple 258 00:13:20,350 --> 00:13:21,149 sería 259 00:13:21,149 --> 00:13:25,210 así 260 00:13:25,210 --> 00:13:27,490 uy 261 00:13:27,490 --> 00:13:28,970 ¿qué he hecho? 262 00:13:29,110 --> 00:13:36,259 ¿Vale? 263 00:13:37,019 --> 00:13:38,299 Así sería más simple 264 00:13:38,299 --> 00:13:40,779 Porque si esta se da 265 00:13:40,779 --> 00:13:42,360 Esta se va a dar 266 00:13:42,360 --> 00:13:44,440 Y esta otra se da 267 00:13:44,440 --> 00:13:45,519 La tercera no me hace falta 268 00:13:45,519 --> 00:13:48,179 Vale, pues entonces 269 00:13:48,179 --> 00:13:49,659 Mi condición ahora se ha quedado 270 00:13:49,659 --> 00:13:52,019 La idea que me han dado arriba 271 00:13:52,019 --> 00:13:54,120 La tengo yo aquí recogida 272 00:13:54,120 --> 00:13:56,259 Con un i lógico 273 00:13:56,259 --> 00:13:57,980 Un and de dos condiciones a su vez 274 00:13:57,980 --> 00:14:00,659 Entonces, si stock2 es mayor que 0 275 00:14:00,659 --> 00:14:03,379 Y stock1 es mayor que stock2 276 00:14:03,379 --> 00:14:04,820 Pues entonces 277 00:14:04,820 --> 00:14:11,179 la combinada será verdad 278 00:14:11,179 --> 00:14:13,600 y condición 2 verdad, vale, pues ya está 279 00:14:13,600 --> 00:14:15,500 vale, un ejemplo 280 00:14:15,500 --> 00:14:19,639 bueno, pues ahora 281 00:14:19,639 --> 00:14:20,820 lo que yo quería decir 282 00:14:20,820 --> 00:14:23,840 porque aquí me dice el documento 283 00:14:23,840 --> 00:14:25,059 que tengo dos formas 284 00:14:25,059 --> 00:14:27,840 de expresar el ilógico y el o también 285 00:14:27,840 --> 00:14:29,759 poniendo el simbolito dos veces son una 286 00:14:29,759 --> 00:14:30,279 o una 287 00:14:30,279 --> 00:14:33,240 es decir, esto 288 00:14:33,240 --> 00:14:35,019 y esto 289 00:14:35,019 --> 00:14:42,570 aparentemente son lo mismo 290 00:14:42,570 --> 00:14:49,009 y son el ilógico, el and, de las dos condiciones que tiene alrededor. 291 00:14:51,090 --> 00:14:53,750 Y es verdad que las dos es el and, las dos. 292 00:14:54,710 --> 00:14:56,049 Y en las dos no hay tutía. 293 00:14:57,250 --> 00:15:03,049 Para que la condición compleja sea verdad, tiene que ser verdad esta y verdad esta. 294 00:15:03,529 --> 00:15:04,389 Y la de arriba igual. 295 00:15:04,970 --> 00:15:08,929 Para que la condición compleja sea verdad, tiene que ser verdad esta y verdad esta. 296 00:15:08,929 --> 00:15:10,789 Eso no cambia, es inamovible. 297 00:15:10,789 --> 00:15:13,769 si tuviéramos un or en vez de un and 298 00:15:13,769 --> 00:15:17,990 el or lógico 299 00:15:17,990 --> 00:15:24,220 que es así 300 00:15:24,220 --> 00:15:27,820 ya hemos dicho que funciona de otra manera 301 00:15:27,820 --> 00:15:28,960 el or lógico 302 00:15:28,960 --> 00:15:31,320 no funciona así, el or lógico es 303 00:15:31,320 --> 00:15:33,659 para que la condición compleja sea verdad 304 00:15:33,659 --> 00:15:35,659 con que sea verdad 305 00:15:35,659 --> 00:15:37,740 una ya es verdad la otra 306 00:15:37,740 --> 00:15:39,259 entonces yo elijo el operador 307 00:15:39,259 --> 00:15:42,080 el i o el o en función de la idea que quiera expresar 308 00:15:42,080 --> 00:15:44,220 ¿verdad? aquí que esta es verdad y esta es mentira 309 00:15:44,220 --> 00:15:46,200 la compleja condición 2 es verdad 310 00:15:46,200 --> 00:15:47,779 que esta es mentira y esta es verdad 311 00:15:47,779 --> 00:15:49,919 la compleja condición 2 es verdad 312 00:15:49,919 --> 00:15:51,600 que esta es verdad y esta también es verdad 313 00:15:51,600 --> 00:15:53,460 la compleja condición 2 es verdad 314 00:15:53,460 --> 00:15:54,679 que las dos son falsas 315 00:15:54,679 --> 00:15:58,080 la compleja condición 2 es falsa 316 00:15:58,080 --> 00:16:00,279 y lo peor de abajo, el que tiene solo un simbolito 317 00:16:00,279 --> 00:16:01,200 que está el cursor ahí 318 00:16:01,200 --> 00:16:04,000 que es esto que hay ahí, ah el cursor, vale 319 00:16:04,000 --> 00:16:05,620 vale 320 00:16:05,620 --> 00:16:07,980 y lo de abajo igual, vale 321 00:16:07,980 --> 00:16:09,679 entonces, diferencia entre anteriores está claro 322 00:16:09,679 --> 00:16:10,600 cada uno usa 323 00:16:10,600 --> 00:16:13,580 el que necesite para la expresión 324 00:16:13,580 --> 00:16:15,139 vale, pero ahora 325 00:16:15,139 --> 00:16:18,100 yo ya voy a volver 326 00:16:18,100 --> 00:16:20,120 a la condición que nos 327 00:16:20,120 --> 00:16:21,320 habían pedido, esta de aquí 328 00:16:21,320 --> 00:16:23,399 y ahora la pregunta sería 329 00:16:23,399 --> 00:16:24,940 ¿por qué hay dos versiones? 330 00:16:25,539 --> 00:16:26,419 ¿por qué hay dos? 331 00:16:26,799 --> 00:16:29,700 si en ambas el resultado de la expresión 332 00:16:29,700 --> 00:16:30,720 es el mismo 333 00:16:30,720 --> 00:16:33,580 pues hay dos porque hay un 334 00:16:33,580 --> 00:16:35,720 la máquina virtual funciona 335 00:16:35,720 --> 00:16:36,659 de forma distinta 336 00:16:36,659 --> 00:16:39,500 cuando se encuentra dos operadores o se encuentra uno 337 00:16:39,500 --> 00:16:41,559 vale, que esto 338 00:16:41,559 --> 00:16:42,720 lo dice aquí 339 00:16:42,720 --> 00:16:45,440 aunque 340 00:16:45,440 --> 00:16:48,080 y ahora lo voy a explicar 341 00:16:48,080 --> 00:16:49,799 vamos a ver 342 00:16:49,799 --> 00:16:51,960 cuando se encuentra 343 00:16:51,960 --> 00:16:54,200 el operador dos veces 344 00:16:54,200 --> 00:16:56,460 solo evalúa 345 00:16:56,460 --> 00:16:58,679 la segunda si le hace falta 346 00:16:58,679 --> 00:17:00,500 si no le hace falta no 347 00:17:00,500 --> 00:17:03,220 y cuando no le va a hacer falta 348 00:17:03,220 --> 00:17:04,680 para tener el resultado 349 00:17:04,680 --> 00:17:08,240 cuando la primera sea falsa 350 00:17:08,240 --> 00:17:08,480 ¿verdad? 351 00:17:11,099 --> 00:17:12,920 vale, o sea en el and lógico 352 00:17:12,920 --> 00:17:15,240 si la primera es falsa 353 00:17:15,240 --> 00:17:17,960 me da exactamente igual como sea la segunda 354 00:17:17,960 --> 00:17:18,859 es que me da igual 355 00:17:18,859 --> 00:17:21,839 porque la condición total va a ser falsa 356 00:17:21,839 --> 00:17:22,200 ¿verdad? 357 00:17:23,859 --> 00:17:25,059 me da igual como sea la segunda 358 00:17:25,059 --> 00:17:27,700 porque si la primera es falsa, me da igual 359 00:17:27,700 --> 00:17:30,460 entonces, cuando hay un doble operador 360 00:17:30,460 --> 00:17:32,059 la máquina virtual dice 361 00:17:32,059 --> 00:17:34,339 oye, en cuanto yo ya sepa 362 00:17:34,339 --> 00:17:35,579 cuál es la completa 363 00:17:35,579 --> 00:17:37,640 dejo de evaluar expresiones 364 00:17:37,640 --> 00:17:40,099 y yo aquí he visto que esta es falsa 365 00:17:40,099 --> 00:17:41,460 como he visto que es falsa 366 00:17:41,460 --> 00:17:42,980 ya paso de todo lo demás 367 00:17:42,980 --> 00:17:45,619 le doy falso a esta y se acabó 368 00:17:45,619 --> 00:17:47,799 sin embargo 369 00:17:47,799 --> 00:17:49,759 cuando se encuentra el operador una única vez 370 00:17:49,759 --> 00:17:51,660 él 371 00:17:51,660 --> 00:17:53,339 evalúa todas 372 00:17:53,339 --> 00:17:54,700 las evalúa todas igual 373 00:17:54,700 --> 00:17:56,859 aunque no le hagan falta 374 00:17:56,859 --> 00:17:59,279 evalúa esta a ver si estuvo falso 375 00:17:59,279 --> 00:18:01,400 evalúa esta a ver si estuvo falso 376 00:18:01,400 --> 00:18:03,079 si tuviera otra con una, evalúa la otra 377 00:18:03,079 --> 00:18:04,099 las evalúa todas 378 00:18:04,099 --> 00:18:06,160 y luego ya construye el valor 379 00:18:06,160 --> 00:18:08,700 ¿vale? 380 00:18:09,460 --> 00:18:10,759 pues ¿cuál es la diferencia? 381 00:18:11,460 --> 00:18:29,269 ¿Por qué nos puede interesar una u otra? Pues imaginaos que yo pongo esto aquí, yo pongo esto aquí, pues ahora ya sí que la diferencia es muy grande entre esta y esta, ¿vale? 382 00:18:29,269 --> 00:18:57,480 ¿Por qué? Vamos a suponer este ejemplo, vamos a darle a stock1 y a stock2 unos valores para que esta primera sea falsa, stock1 igual a 7 y stock2 igual a 10, esta es falsa, ¿verdad? Está claro, esta es falsísima. 383 00:18:57,480 --> 00:18:59,400 Entonces al ser falsísima 384 00:18:59,400 --> 00:19:01,440 Y al haber dos and 385 00:19:01,440 --> 00:19:03,960 La máquina virtual pasa de esta 386 00:19:03,960 --> 00:19:05,279 Pasa de esta 387 00:19:05,279 --> 00:19:07,559 Entonces al pasar de esta 388 00:19:07,559 --> 00:19:09,859 Este más más no lo hace 389 00:19:09,859 --> 00:19:11,259 Porque ha pasado de ella 390 00:19:11,259 --> 00:19:13,960 Vale, versión de abajo 391 00:19:13,960 --> 00:19:15,940 La máquina virtual 392 00:19:15,940 --> 00:19:17,440 Aunque esta ya sea falsa 393 00:19:17,440 --> 00:19:19,119 Como solo hay un and 394 00:19:19,119 --> 00:19:20,799 Evalúa todo 395 00:19:20,799 --> 00:19:23,619 Pues al evaluar todo 396 00:19:23,619 --> 00:19:25,599 Este más más si lo hace 397 00:19:25,599 --> 00:19:27,420 Entonces la diferencia 398 00:19:27,420 --> 00:19:29,420 entre esta de arriba y esta de abajo 399 00:19:29,420 --> 00:19:31,579 es, condición 2 400 00:19:31,579 --> 00:19:33,619 va a ser igual siempre, va a ser falsa 401 00:19:33,619 --> 00:19:34,920 en ambos casos, va a ser igual 402 00:19:34,920 --> 00:19:37,619 pero la diferencia es que como resultado 403 00:19:37,619 --> 00:19:39,519 de hacer esta expresión, puede 404 00:19:39,519 --> 00:19:41,579 que nos hayamos dejado algo 405 00:19:41,579 --> 00:19:42,079 sin hacer 406 00:19:42,079 --> 00:19:45,019 vale, vamos a poner aquí 407 00:19:45,019 --> 00:19:47,700 siso, condición 408 00:19:47,700 --> 00:19:50,460 dime 409 00:19:50,460 --> 00:19:53,839 sí, sí, sí, condición 2 410 00:19:53,839 --> 00:19:55,380 da falsa las dos, pero lo que cambia 411 00:19:55,380 --> 00:19:56,759 es stock 2 412 00:19:56,759 --> 00:20:01,390 Sí, las dos dan false 413 00:20:01,390 --> 00:20:03,410 Las dos dan false 414 00:20:03,410 --> 00:20:04,950 Lo que cambia es 415 00:20:04,950 --> 00:20:06,930 O sea, por eso digo que el operador este 416 00:20:06,930 --> 00:20:09,630 No tiene implicaciones respecto al resultado 417 00:20:09,630 --> 00:20:11,789 De la variable, porque en ambos es el ilógico 418 00:20:11,789 --> 00:20:13,769 Lo que tiene implicaciones es 419 00:20:13,769 --> 00:20:15,150 Que en un caso 420 00:20:15,150 --> 00:20:17,049 Esto se evalúa y en otro no 421 00:20:17,049 --> 00:20:19,869 Entonces puede ser que como está de evaluarse 422 00:20:19,869 --> 00:20:22,009 Pase algo o no pase nada 423 00:20:22,009 --> 00:20:23,630 Si yo no tengo el más más 424 00:20:23,630 --> 00:20:25,569 Da exactamente igual, me da igual evaluarlo 425 00:20:25,569 --> 00:20:26,329 Que no, no pasa nada 426 00:20:26,329 --> 00:20:28,029 Pero si por ejemplo 427 00:20:28,029 --> 00:20:29,890 Por ejemplo tuviera ahí un más más 428 00:20:29,890 --> 00:20:32,269 Ahí es que además de evaluar 429 00:20:32,269 --> 00:20:33,609 Hago un incremento 430 00:20:33,609 --> 00:20:35,289 Entonces ahí sí que hay una diferencia muy grande 431 00:20:35,289 --> 00:20:37,670 Entre evaluar esto y no evaluarlo 432 00:20:37,670 --> 00:20:39,829 ¿Vale? Condición 2 433 00:20:39,829 --> 00:20:42,269 Vamos a ponerlo aquí 434 00:20:42,269 --> 00:20:46,210 Va a ser falso en ambos casos, está claro 435 00:20:46,210 --> 00:20:47,829 Condición 2 436 00:20:47,829 --> 00:20:49,990 Pero vamos a mostrar 437 00:20:49,990 --> 00:20:52,009 Ahora el 438 00:20:52,009 --> 00:20:55,130 Valor de stock 2 439 00:20:55,130 --> 00:20:59,410 y ahora esto mismo 440 00:20:59,410 --> 00:21:01,410 vamos a volver a las condiciones iniciales 441 00:21:02,130 --> 00:21:05,470 las volvemos a poner aquí 442 00:21:05,470 --> 00:21:07,789 y volvemos a mostrar 443 00:21:07,789 --> 00:21:11,890 vale 444 00:21:11,890 --> 00:21:13,269 voy a poner aquí un 445 00:21:13,269 --> 00:21:15,150 siso con 446 00:21:15,150 --> 00:21:19,829 asterisco para saber donde estoy 447 00:21:19,829 --> 00:21:25,000 vale 448 00:21:25,000 --> 00:21:29,140 vamos a ejecutarlo 449 00:21:29,140 --> 00:21:34,160 joder con el proceed, este 450 00:21:34,160 --> 00:21:37,200 ¿veis? o sea, las dos son falsas 451 00:21:37,200 --> 00:21:38,099 eso no hay tutía 452 00:21:38,799 --> 00:21:41,240 pero después de haber hecho 453 00:21:41,240 --> 00:21:43,039 la primera 454 00:21:43,039 --> 00:21:44,220 stock2 455 00:21:44,220 --> 00:21:46,400 no ha cambiado su valor 456 00:21:46,400 --> 00:21:47,680 tenía el que tenía, 10 457 00:21:47,680 --> 00:21:50,299 porque esta no han intentado evaluarla 458 00:21:50,299 --> 00:21:51,339 no le ha hecho falta 459 00:21:51,339 --> 00:21:52,799 pero en este caso 460 00:21:52,799 --> 00:21:54,680 sí que la ha evaluado 461 00:21:54,680 --> 00:21:56,539 luego la ha incrementado en 1 462 00:21:56,539 --> 00:21:58,920 y por eso aquí nos da 11 463 00:21:58,920 --> 00:22:02,359 o sea, no es el mismo 464 00:22:02,359 --> 00:22:03,240 este código 465 00:22:03,240 --> 00:22:04,799 y este código 466 00:22:04,799 --> 00:22:06,359 este y este de arriba 467 00:22:06,359 --> 00:22:08,700 la única diferencia es el doble and 468 00:22:08,700 --> 00:22:10,700 y el simple and, es la única diferencia, además es 469 00:22:10,700 --> 00:22:12,859 idéntico, pero tiene una implicación 470 00:22:12,859 --> 00:22:14,640 muy grande, en el valor 471 00:22:14,640 --> 00:22:15,900 de la variable stock2 472 00:22:15,900 --> 00:22:17,900 ¿vale? 473 00:22:18,559 --> 00:22:20,559 pues ahí en ese punto 474 00:22:20,559 --> 00:22:22,700 es donde hay implicaciones 475 00:22:22,700 --> 00:22:24,700 en poner esto, no en que el 476 00:22:24,700 --> 00:22:25,920 valor de esta condición cambie 477 00:22:25,920 --> 00:22:28,039 sino que si aquí 478 00:22:28,039 --> 00:22:29,740 se ejecuta algo 479 00:22:29,740 --> 00:22:32,279 además de hacer la condición 480 00:22:32,279 --> 00:22:34,700 si se ejecuta algo, en el doble and 481 00:22:34,700 --> 00:22:36,720 no se va a ejecutar cuando esto sea falso 482 00:22:36,720 --> 00:22:39,079 y en el simple and sí que se va a ejecutar. 483 00:22:41,079 --> 00:22:42,420 Entonces, una diferencia hay. 484 00:22:43,339 --> 00:22:46,640 Y hay que tenerla ahí recordada e identificada, 485 00:22:47,180 --> 00:22:50,579 porque hay veces que uno tiene una aplicación muy larga hecha 486 00:22:50,579 --> 00:22:52,720 y no entiende por qué le está pasando una cosa. 487 00:22:53,240 --> 00:22:53,819 No lo entiende. 488 00:22:53,960 --> 00:22:57,599 Y muchas veces las aplicaciones no funcionan, 489 00:22:57,900 --> 00:23:00,079 como he dicho muchas veces, no por errores gordos, 490 00:23:00,579 --> 00:23:04,119 sino por cosas muy básicas, por cosas básicas del principio. 491 00:23:04,119 --> 00:23:06,619 ¿por qué uno no ha visto que se ha hecho un casting 492 00:23:06,619 --> 00:23:08,579 donde no es? ¿por qué uno no ha visto la producción 493 00:23:08,579 --> 00:23:10,799 automática? ¿por qué uno no ha visto 494 00:23:10,799 --> 00:23:12,779 esto? o sea, funcionamientos 495 00:23:12,779 --> 00:23:15,119 de aplicaciones que no se entienden 496 00:23:15,119 --> 00:23:16,420 la mayoría de las veces es 497 00:23:16,420 --> 00:23:18,299 por errores de 498 00:23:18,299 --> 00:23:20,000 base del principio 499 00:23:20,000 --> 00:23:22,720 ¿vale? de errores de base del principio, entonces todo esto 500 00:23:22,720 --> 00:23:25,000 todos estos pequeños ladrillos 501 00:23:25,000 --> 00:23:26,500 los tenemos que ir 502 00:23:26,500 --> 00:23:27,880 dejando ahí 503 00:23:27,880 --> 00:23:29,660 ahí frescos en la memoria 504 00:23:29,660 --> 00:23:33,420 en los papeles para estudiarlos cuando llegue el examen 505 00:23:33,420 --> 00:23:35,660 Porque es que, entonces no vale 506 00:23:35,660 --> 00:23:39,839 Bueno, vale, a ver 507 00:23:39,839 --> 00:23:48,990 Bueno 508 00:23:48,990 --> 00:23:54,930 Aquí tenéis más rollo, a ver 509 00:23:54,930 --> 00:23:57,029 Si me meto a los operadores de bits 510 00:23:57,029 --> 00:23:58,369 Y todo esto 511 00:23:58,369 --> 00:24:01,430 Ya os morís 512 00:24:01,430 --> 00:24:04,910 Entonces, chao 513 00:24:04,910 --> 00:24:08,069 Entonces estos operadores de aquí 514 00:24:08,069 --> 00:24:09,230 De bits 515 00:24:09,230 --> 00:24:11,630 Los vamos a mencionar muy rápido 516 00:24:11,630 --> 00:24:13,130 El próximo día por encima 517 00:24:13,130 --> 00:24:14,069 Porque apenas se usan 518 00:24:14,069 --> 00:24:15,269 Pero bueno, vamos a mencionarlos 519 00:24:15,269 --> 00:24:17,890 Para que sepáis lo que hacen 520 00:24:17,890 --> 00:24:20,009 Muy por encima, pero prácticamente no se usan 521 00:24:20,009 --> 00:24:21,789 Vamos a mencionarlos 522 00:24:21,789 --> 00:24:23,089 Aunque podéis leer por aquí, nada 523 00:24:23,089 --> 00:24:24,430 Cinco minutos y ya está 524 00:24:24,430 --> 00:24:28,829 Y luego aquí hay una tabla de precedencia 525 00:24:28,829 --> 00:24:29,930 En el caso de que hay una expresión 526 00:24:29,930 --> 00:24:31,789 Que mezcle muchos en el orden 527 00:24:31,789 --> 00:24:33,789 Y no hay paréntesis en el orden en el que haya 528 00:24:33,789 --> 00:24:37,630 Y no hay mucho más, ¿vale? 529 00:24:39,230 --> 00:24:40,970 vale, bueno, pues entonces 530 00:24:40,970 --> 00:24:46,410 bueno, yo creo que yo me voy a callar más 531 00:24:46,410 --> 00:24:47,470 me voy a callar ya