1 00:00:00,000 --> 00:00:07,240 Vale, a ver, bueno, pues los que estábamos viendo antes de irnos, los relacionales, 2 00:00:07,660 --> 00:00:09,919 todos los sabemos usar porque los hemos usado en matemáticas, 3 00:00:10,779 --> 00:00:14,419 y podemos comparar números y caracteres. 4 00:00:15,980 --> 00:00:20,260 Vale, pues entonces, ahora, con los operadores estos relacionales, 5 00:00:20,260 --> 00:00:24,320 con los operadores estos relacionales o de comparación, ¿qué es lo que hacemos? 6 00:00:24,719 --> 00:00:27,059 Condiciones, construimos condiciones, ¿vale? 7 00:00:27,059 --> 00:00:28,879 esas condiciones 8 00:00:28,879 --> 00:00:31,399 ahora mismo lo único que hacemos con ellas 9 00:00:31,399 --> 00:00:32,679 es asignarlas a Boolean 10 00:00:32,679 --> 00:00:35,820 pero más adelante serán fundamentales 11 00:00:35,820 --> 00:00:37,479 para ponerlas dentro de 12 00:00:37,479 --> 00:00:39,719 sentencias de decisión, de sentencias de bucle 13 00:00:39,719 --> 00:00:41,439 etcétera, ahora mismo las estamos asignando 14 00:00:41,439 --> 00:00:42,439 a Booleanos y ya está 15 00:00:42,439 --> 00:00:45,520 para luego mostrar si Booleanos es true o false 16 00:00:45,520 --> 00:00:46,579 bueno 17 00:00:46,579 --> 00:00:48,859 pues las condiciones 18 00:00:48,859 --> 00:00:51,520 a veces no son tan sencillas como 19 00:00:51,520 --> 00:00:53,700 ser menor o igual, mayor o igual 20 00:00:53,700 --> 00:00:55,460 menor que, mayor que, a veces las condiciones 21 00:00:55,460 --> 00:00:56,560 son más complejas 22 00:00:56,560 --> 00:01:16,680 Una condición puede ser, eres mayor de edad pero no estás jubilado. Esa es una condición. Esa condición, ¿cómo la expresamos? Pues en lenguaje natural lo tenemos claro. X mayor o edad mayor o igual que 18 y edad menor o igual que 65, la que sea. 23 00:01:16,680 --> 00:01:29,319 Entonces, expresiones que necesitamos para nuestros programas muchas veces vienen de combinar varias expresiones, de tal manera que o se cumplan las dos simultáneamente o se cumpla una de las dos. 24 00:01:29,319 --> 00:01:31,459 Claro 25 00:01:31,459 --> 00:01:32,219 Una 26 00:01:32,219 --> 00:01:35,719 Pues cualquier condición 27 00:01:35,719 --> 00:01:36,359 Puede ser la contraria 28 00:01:36,359 --> 00:01:40,159 O bien, solamente entra gratis 29 00:01:40,159 --> 00:01:41,659 Si eres niño 30 00:01:41,659 --> 00:01:43,400 O si eres jubilado 31 00:01:43,400 --> 00:01:45,099 Entonces el código 32 00:01:45,099 --> 00:01:47,659 Que tiene que al usuario que está 33 00:01:47,659 --> 00:01:49,900 En la aplicación, el que está en el museo 34 00:01:49,900 --> 00:01:52,299 Le das la edad 35 00:01:52,299 --> 00:01:53,819 Oye, bueno, le das el DNI 36 00:01:53,819 --> 00:01:55,799 O le dices la edad 37 00:01:55,799 --> 00:01:57,340 Entonces él mete la edad 38 00:01:57,340 --> 00:01:59,060 Y le da un enter 39 00:01:59,060 --> 00:02:02,560 y la aplicación le dirá, paga entrada o no paga entrada. 40 00:02:02,760 --> 00:02:07,459 Bueno, con esa aplicación que está ahí debajo, habrá tenido que recoger esa edad 41 00:02:07,459 --> 00:02:12,460 y en ese caso la condición para ver ese Boolean es una condición más compleja 42 00:02:12,460 --> 00:02:19,479 porque será edad menor o igual que 18 o edad mayor o igual que 65. 43 00:02:20,259 --> 00:02:21,680 Entonces, ¿qué quiero decir con esto? 44 00:02:21,680 --> 00:02:51,659 Que los programas necesitan poder expresar condiciones que combinen varias. ¿Y cómo se combinan varias condiciones? Pues varias condiciones se han combinado de toda la vida con lo que viene siendo, con lo que viene siendo el, es decir, ¿cómo combinamos condiciones? 45 00:02:51,659 --> 00:03:03,979 en lenguaje nuestro natural, las combinamos con el y, ¿verdad?, es decir, esto y esto, así combinamos 46 00:03:03,979 --> 00:03:11,639 en lenguaje natural dos condiciones, el y significa se cumple esto y también se cumple esto, si se cumplen 47 00:03:11,639 --> 00:03:19,819 las dos, la expresión total es válida, ¿vale?, y en lenguaje natural estamos acostumbrados a decir 48 00:03:19,819 --> 00:03:21,639 también esto o esto 49 00:03:21,639 --> 00:03:24,099 entonces esto o esto 50 00:03:24,099 --> 00:03:25,639 su resultado final será 51 00:03:25,639 --> 00:03:27,460 true, será se cumple 52 00:03:27,460 --> 00:03:29,979 si se da esta o 53 00:03:29,979 --> 00:03:31,979 se da esta otra, con que una de las 54 00:03:31,979 --> 00:03:33,740 dos se dé, el resultado final se da 55 00:03:33,740 --> 00:03:35,939 y también estamos 56 00:03:35,939 --> 00:03:37,960 acostumbrados en lenguaje natural a decir 57 00:03:37,960 --> 00:03:38,740 oye esto no 58 00:03:38,740 --> 00:03:40,960 estamos acostumbrados a decir esto no 59 00:03:40,960 --> 00:03:44,099 entonces esto no cuando se va a cumplir 60 00:03:44,099 --> 00:03:46,039 cuando esta condición 61 00:03:46,039 --> 00:03:47,280 sea falsa 62 00:03:47,280 --> 00:03:49,879 Cuando esta condición sea falsa, esto se cumplirá. 63 00:03:50,520 --> 00:03:52,960 Bueno, pues esto que todos en lenguaje natural lo entendemos, 64 00:03:53,060 --> 00:03:58,180 sabemos lo que significa tú eres rubio y eres alto. 65 00:03:58,560 --> 00:04:00,800 Sabemos lo que significa, que eres las dos cosas. 66 00:04:01,819 --> 00:04:04,039 Tú o eres rubio o eres alto. 67 00:04:04,159 --> 00:04:05,979 Sabemos lo que significa, que eres una de las dos. 68 00:04:06,120 --> 00:04:08,360 Tú no eres rubio, o sea, lo que significa que no lo eres. 69 00:04:08,919 --> 00:04:11,219 Por eso que todos lo entendemos en lenguaje natural, 70 00:04:11,780 --> 00:04:13,840 se puede expresar también en lenguaje Java. 71 00:04:13,840 --> 00:04:15,699 lo que pasa es que el i 72 00:04:15,699 --> 00:04:18,420 ya no se escribe como i 73 00:04:18,420 --> 00:04:20,699 lógicamente, el i como se escribe en Java 74 00:04:20,699 --> 00:04:22,480 así 75 00:04:22,480 --> 00:04:25,120 con un doble ampersand 76 00:04:25,120 --> 00:04:26,120 toma ya 77 00:04:26,120 --> 00:04:27,560 el o 78 00:04:27,560 --> 00:04:30,439 como se escribe en lenguaje de Java 79 00:04:30,439 --> 00:04:32,540 con la doble barrita 80 00:04:32,540 --> 00:04:33,680 esta larga 81 00:04:33,680 --> 00:04:36,800 para abajo, que la ponéis en el 1 82 00:04:36,800 --> 00:04:38,500 o sea, en el 1 tiene debajo 83 00:04:38,500 --> 00:04:39,259 el simbolito 84 00:04:39,259 --> 00:04:40,959 ¿vale? 85 00:04:40,959 --> 00:04:43,579 Todo el mundo identifica en el teclado 86 00:04:43,579 --> 00:04:44,680 La barra esta largota 87 00:04:44,680 --> 00:04:46,339 Vale 88 00:04:46,339 --> 00:04:49,480 Pues la doble barra es el o nuestro 89 00:04:49,480 --> 00:04:52,079 Y como es el no 90 00:04:52,079 --> 00:04:53,339 En el lenguaje de Java 91 00:04:53,339 --> 00:04:55,579 La admiración 92 00:04:55,579 --> 00:04:56,259 Para abajo 93 00:04:56,259 --> 00:04:59,300 Que no tengo yo la admiración para abajo 94 00:04:59,300 --> 00:05:02,639 Pero si joder 95 00:05:02,639 --> 00:05:05,720 Ah porque me obliga 96 00:05:05,720 --> 00:05:06,680 Que jodido 97 00:05:06,680 --> 00:05:09,079 Claro como en castellano 98 00:05:09,079 --> 00:05:11,759 es obligatorio empezar las exclamaciones 99 00:05:11,759 --> 00:05:13,379 y las preguntas, él me dice 100 00:05:13,379 --> 00:05:15,439 como la vas a escribir en inglés y en inglés 101 00:05:15,439 --> 00:05:17,660 solo es válida la última, te meto yo la primera 102 00:05:17,660 --> 00:05:18,759 para que no la hagan mal 103 00:05:18,759 --> 00:05:20,800 vale, eso es lo que hace el web 104 00:05:20,800 --> 00:05:22,600 vale 105 00:05:22,600 --> 00:05:25,060 bueno, pues esto es el no 106 00:05:25,060 --> 00:05:27,620 bueno, vale, pues ya conocemos 107 00:05:27,620 --> 00:05:29,519 la sintaxis de los operadores en Java 108 00:05:29,519 --> 00:05:31,360 los operadores 109 00:05:31,360 --> 00:05:33,660 booleanos, u operadores lógicos 110 00:05:33,660 --> 00:05:34,920 que se llaman, vale 111 00:05:34,920 --> 00:05:36,379 son estos 112 00:05:36,379 --> 00:05:38,279 los que se llaman 113 00:05:38,279 --> 00:05:41,019 los booleanos o los operadores lógicos 114 00:05:41,019 --> 00:05:43,079 en la lógica 115 00:05:43,079 --> 00:05:44,959 de toda la vida son los que se llaman 116 00:05:44,959 --> 00:05:45,600 el AND 117 00:05:45,600 --> 00:05:48,180 que es la conjunción 118 00:05:48,180 --> 00:05:50,819 el OR que es la disyunción 119 00:05:50,819 --> 00:05:52,279 o la negación 120 00:05:52,279 --> 00:05:55,019 este SOLA lo vemos después cuando tengamos 121 00:05:55,019 --> 00:05:57,240 claro el AND, el OR y el NOT que son los naturales 122 00:05:57,240 --> 00:05:57,800 de toda la vida 123 00:05:57,800 --> 00:06:00,980 vale, bueno pues en Java se escriben 124 00:06:00,980 --> 00:06:03,139 así, así 125 00:06:03,139 --> 00:06:04,199 y así 126 00:06:04,199 --> 00:06:07,519 ¿Y esta variante qué significa? 127 00:06:07,620 --> 00:06:09,800 Ahora la veremos después, cuando tengamos ya entendido esto 128 00:06:09,800 --> 00:06:11,699 Vamos a entender primero estos tres 129 00:06:11,699 --> 00:06:13,279 El and, el or y el not 130 00:06:13,279 --> 00:06:13,819 Estos tres 131 00:06:13,819 --> 00:06:18,470 Bueno, pues aquí 132 00:06:18,470 --> 00:06:20,829 Por ejemplo 133 00:06:20,829 --> 00:06:24,620 Esto está claro 134 00:06:24,620 --> 00:06:27,680 ¿Cómo escribiríamos la condición de 135 00:06:27,680 --> 00:06:32,779 Dada una edad 136 00:06:32,779 --> 00:06:36,759 Mostrar si es 137 00:06:36,759 --> 00:06:45,100 Mayor de 138 00:06:45,100 --> 00:06:46,879 Edad 139 00:06:46,879 --> 00:06:53,060 pero no jubilado 140 00:06:53,060 --> 00:07:02,060 mayor de edad 141 00:07:02,060 --> 00:07:03,339 pero no jubilado todavía 142 00:07:03,339 --> 00:07:06,000 porque si estamos en ese periodo de edad 143 00:07:06,000 --> 00:07:07,439 pues se supone que la aplicación 144 00:07:07,439 --> 00:07:08,660 hace ciertas cosas 145 00:07:08,660 --> 00:07:11,500 bueno, aquí 146 00:07:11,500 --> 00:07:13,959 a ver, primera cosa importante 147 00:07:13,959 --> 00:07:15,100 que tengamos en mente 148 00:07:15,100 --> 00:07:17,620 las expresiones 149 00:07:17,620 --> 00:07:19,079 cuando tenemos que hacer una aplicación 150 00:07:19,079 --> 00:07:21,220 las condiciones 151 00:07:21,220 --> 00:07:23,300 se expresan en lenguaje natural 152 00:07:23,300 --> 00:07:25,860 y en lenguaje natural estamos acostumbrados a entenderlas 153 00:07:25,860 --> 00:07:27,959 que es, oye, eres mayor de edad 154 00:07:27,959 --> 00:07:29,720 pero no estás jubilado, y eso lo entendemos 155 00:07:29,720 --> 00:07:32,040 lo que significa, eres mayor de edad pero no estás jubilado 156 00:07:32,040 --> 00:07:33,839 eso luego hay que 157 00:07:33,839 --> 00:07:34,759 traducirlo a Java 158 00:07:34,759 --> 00:07:37,240 no es trivial 159 00:07:37,240 --> 00:07:39,279 porque aquí no hay ningún 160 00:07:39,279 --> 00:07:41,540 no hay ningún i en realidad 161 00:07:41,540 --> 00:07:42,779 en esta frase 162 00:07:42,779 --> 00:07:45,779 no hay ningún i que me dé la pista 163 00:07:45,779 --> 00:07:47,779 no hay ninguna y, ninguna conjunción 164 00:07:48,360 --> 00:07:50,560 del lenguaje 165 00:07:50,560 --> 00:07:51,740 que me dé la pista 166 00:07:51,740 --> 00:07:53,740 de que esto va a ser el and de dos cosas 167 00:07:53,740 --> 00:07:55,180 no me está dando la pista 168 00:07:55,180 --> 00:07:57,199 es mayor de edad y también no es jubilado 169 00:07:57,199 --> 00:07:59,399 claro, pero nunca decíamos eso 170 00:07:59,399 --> 00:08:01,279 nosotros decimos 171 00:08:01,279 --> 00:08:03,139 mayor de edad pero no está jubilado 172 00:08:03,139 --> 00:08:04,879 decimos eso normalmente 173 00:08:04,879 --> 00:08:06,220 entonces, ¿qué quiero decir? 174 00:08:06,620 --> 00:08:08,459 que cuando nosotros nos describen una condición 175 00:08:08,459 --> 00:08:10,379 y luego tenemos que programar un programa 176 00:08:10,379 --> 00:08:11,720 que tenga en cuenta esa condición 177 00:08:11,720 --> 00:08:14,920 pues tenemos que hacer un proceso mental 178 00:08:14,920 --> 00:08:17,500 de traducir eso a una condición que lo refleje 179 00:08:17,500 --> 00:08:19,279 y a veces será más fácil 180 00:08:19,279 --> 00:08:21,120 y a veces no, y a veces ponemos sí 181 00:08:21,120 --> 00:08:22,899 cuando hay que poner o y viceversa 182 00:08:22,899 --> 00:08:25,319 Entonces, no es tan sencillo. 183 00:08:26,360 --> 00:08:27,800 Entonces, aquí hay que traducir. 184 00:08:28,339 --> 00:08:30,740 ¿Cuál es la condición ser mayor de edad pero no jubilado? 185 00:08:31,160 --> 00:08:34,620 Bueno, primero vamos a suponer que tenemos por aquí la edad, 186 00:08:35,980 --> 00:08:38,039 que la hemos leído por teclado. 187 00:08:41,279 --> 00:08:41,919 Uy. 188 00:08:47,080 --> 00:08:50,980 Vale, y voy a poner el escáner por ahí, 189 00:08:51,600 --> 00:08:55,340 que lo tendré en una clase de estas. 190 00:08:57,059 --> 00:08:59,860 Tardaba casi menos escribiendo, pero bueno. 191 00:09:01,299 --> 00:09:05,879 Vale, voy a poner el escáner aquí para leer del teclado. 192 00:09:11,240 --> 00:09:15,480 Venga, introduzca edad. 193 00:09:17,000 --> 00:09:18,360 Leemos una edad. 194 00:09:19,159 --> 00:09:25,159 Y ahora, el programa nos tiene que decir si te toca pagar, por ejemplo. 195 00:09:26,080 --> 00:09:26,259 ¿Vale? 196 00:09:26,259 --> 00:09:31,980 Dado una edad, mostrar si es mayor, mostrar si paga entrada. 197 00:09:32,220 --> 00:09:34,799 Vamos a poner, para que parezca un programa real. 198 00:09:37,309 --> 00:09:38,769 Si paga entrada, ¿vale? 199 00:09:38,789 --> 00:09:40,289 Este puede ser un requisito de una aplicación. 200 00:09:40,870 --> 00:09:44,590 Oye, en mi aplicación yo te voy a meter una edad y tú me tienes que decir si paga. 201 00:09:44,730 --> 00:09:45,649 Entonces yo le digo al tío, ¿eh? 202 00:09:45,710 --> 00:09:46,730 20 euros, vale. 203 00:09:47,389 --> 00:09:51,049 Entonces, ahora yo ya, una vez que me han dado ese requisito, 204 00:09:51,110 --> 00:09:53,090 yo ya me voy con el cliente que me pidió la petición y le digo, 205 00:09:53,169 --> 00:09:54,450 oye, ¿y quiénes pagan entrada? 206 00:09:54,970 --> 00:09:57,269 Y él me dice, ah, vale, que no te lo he aclarado. 207 00:09:57,570 --> 00:10:04,169 Pagan entrada los mayores de edad no jubilados. 208 00:10:07,009 --> 00:10:08,169 Jubilados, ¿vale? 209 00:10:08,470 --> 00:10:10,309 Te dirá esto, pagan la edad. 210 00:10:10,830 --> 00:10:12,929 Vale, entonces ahora ya nosotros ya traducimos. 211 00:10:13,929 --> 00:10:18,690 Venga, pues ahora lo que tenemos es que construye una condición. 212 00:10:18,909 --> 00:10:21,529 Una condición que nos diga si sí o si no. 213 00:10:22,190 --> 00:10:22,629 ¿Vale? 214 00:10:22,649 --> 00:10:26,389 El resultado de este programa en cualquier caso va a ser sí o no. 215 00:10:26,389 --> 00:10:38,549 Entonces, cuando el resultado de un programa es decir sí o decir no, en algún momento habrá que hacer una expresión con la condición que fije si la respuesta es sí o si la respuesta es no. 216 00:10:39,470 --> 00:10:42,950 Entonces, aquí tendremos que hacer una condición que me diga si la respuesta es sí o no. 217 00:10:43,909 --> 00:10:50,509 Vale, pues la condición es que el que tenga esta edad sea mayor de edad y no jubilado. 218 00:10:50,509 --> 00:10:54,629 Bueno, pues la condición entonces vamos a meterla en un boolean. 219 00:10:56,389 --> 00:10:58,309 condición, porque las condiciones las metemos 220 00:10:58,309 --> 00:10:59,230 en boolean. 221 00:11:00,470 --> 00:11:02,549 Y ahora, ahora ya es cuando tenemos que traducir. 222 00:11:03,009 --> 00:11:04,409 ¿Cómo expreso yo ser 223 00:11:04,409 --> 00:11:06,389 mayor de edad pero no jubilado? Entonces ya 224 00:11:06,389 --> 00:11:08,049 cuando empezamos a analizar ese texto 225 00:11:08,049 --> 00:11:10,370 y decimos, vale, pues eso implica 226 00:11:10,370 --> 00:11:12,610 que se cumplan simultáneamente 227 00:11:12,610 --> 00:11:14,350 dos cosas. Entonces 228 00:11:14,350 --> 00:11:16,350 desde el momento en que llegamos a la conclusión de que 229 00:11:16,350 --> 00:11:18,529 tienen que cumplirse simultáneamente 230 00:11:18,529 --> 00:11:20,409 dos cosas, ahora ya 231 00:11:20,409 --> 00:11:21,710 sí que sabemos que es un and. 232 00:11:22,509 --> 00:11:24,470 ¿Qué dos cosas tienen que cumplir simultáneamente? 233 00:11:24,470 --> 00:11:26,750 mayor o igual que 18 234 00:11:26,750 --> 00:11:28,830 y menor 235 00:11:28,830 --> 00:11:30,169 o igual que 65 236 00:11:30,169 --> 00:11:32,809 entonces hemos llegado a esa conclusión 237 00:11:32,809 --> 00:11:34,870 ¿vale? 238 00:11:35,889 --> 00:11:36,570 entonces 239 00:11:36,570 --> 00:11:38,289 esta condición ahora será 240 00:11:38,289 --> 00:11:41,250 edad mayor o igual que 18 241 00:11:41,250 --> 00:11:42,830 pero también 242 00:11:42,830 --> 00:11:44,250 simultáneamente 243 00:11:44,250 --> 00:11:46,470 pero también simultáneamente 244 00:11:46,470 --> 00:11:48,769 edad, lo voy a poner 245 00:11:48,769 --> 00:11:50,289 abajo porque la letra está muy grande 246 00:11:50,289 --> 00:11:51,409 y si no, no cabe 247 00:11:51,409 --> 00:11:55,009 pero también edad menor o igual 248 00:11:55,009 --> 00:11:56,070 que 65 249 00:11:56,070 --> 00:11:58,929 y esta condición 250 00:11:58,929 --> 00:12:00,669 está perfectamente bien expresada 251 00:12:00,669 --> 00:12:02,529 es el 252 00:12:02,529 --> 00:12:04,950 lógico de dos condiciones 253 00:12:04,950 --> 00:12:05,649 simples 254 00:12:05,649 --> 00:12:14,649 se pueden usar las dos pero hay diferencias 255 00:12:14,649 --> 00:12:15,850 entonces por eso he dicho 256 00:12:15,850 --> 00:12:18,370 solo uno tiene una implicación 257 00:12:18,370 --> 00:12:19,809 que luego vemos 258 00:12:19,809 --> 00:12:22,409 por defecto siempre se usa el dos 259 00:12:22,409 --> 00:12:24,070 Ahora explicaremos por qué 260 00:12:24,070 --> 00:12:28,070 Ahora explicaremos por qué hay otra expresión paralela 261 00:12:28,070 --> 00:12:30,230 Que es ampersand y en qué se diferencia de esta 262 00:12:30,230 --> 00:12:35,129 Bueno, pues esta condición está perfectamente expresada 263 00:12:35,129 --> 00:12:39,230 Entonces esto implica la simultaneidad de las dos cosas 264 00:12:39,230 --> 00:12:41,570 Entonces a veces no es tan fácil 265 00:12:41,570 --> 00:12:45,009 Decidir, llegar a la conclusión de que 266 00:12:45,009 --> 00:12:47,009 Esa expresión que me han dado 267 00:12:47,009 --> 00:12:50,230 Significa la simultaneidad de las dos cosas 268 00:12:50,230 --> 00:12:52,389 o con que una de las dos se cumpla 269 00:12:52,389 --> 00:12:53,870 a veces no es tan fácil 270 00:12:53,870 --> 00:12:55,710 pero bueno, ya es cuestión pues de práctica 271 00:12:55,710 --> 00:12:57,850 de saber leer bien, de pensarlo bien 272 00:12:57,850 --> 00:12:59,929 entonces 273 00:12:59,929 --> 00:13:01,629 esta expresión 274 00:13:01,629 --> 00:13:03,750 solo va a ser válida para edades 275 00:13:03,750 --> 00:13:06,269 comprendidas en ese intervalo 276 00:13:06,269 --> 00:13:06,929 ¿verdad? 277 00:13:09,210 --> 00:13:09,730 entonces 278 00:13:09,730 --> 00:13:11,570 si nosotros ahora pues ponemos 279 00:13:11,570 --> 00:13:12,950 ya el resultado del programa 280 00:13:12,950 --> 00:13:16,070 paga y lo concatenamos con 281 00:13:16,070 --> 00:13:17,350 con 282 00:13:17,350 --> 00:13:19,889 pues 283 00:13:19,889 --> 00:13:23,350 Ahora ya ejecutamos esto 284 00:13:23,350 --> 00:13:25,730 Bueno, esto son todas las pruebas que hemos hecho antes 285 00:13:25,730 --> 00:13:27,129 Y ahora ya hemos llegado al programita 286 00:13:27,129 --> 00:13:28,990 ¿Introduzca edad 34? 287 00:13:29,370 --> 00:13:30,190 Pues sí que paga 288 00:13:30,190 --> 00:13:34,110 ¿Introduzca edad 12? 289 00:13:34,269 --> 00:13:35,309 Pues no, este no paga 290 00:13:35,309 --> 00:13:38,210 ¿Introduzca edad 70? 291 00:13:38,389 --> 00:13:39,389 Este tampoco paga 292 00:13:39,389 --> 00:13:41,629 Vale, está claro la simultaneidad 293 00:13:41,629 --> 00:13:42,629 Lo que significa, ¿no? 294 00:13:42,809 --> 00:13:45,049 Que se tienen que cumplir las dos 295 00:13:45,049 --> 00:13:47,710 Como una de las dos no se cumpla 296 00:13:47,710 --> 00:13:48,710 Por ejemplo, en 12 297 00:13:48,710 --> 00:13:51,070 Con 12 esta se cumplía 298 00:13:51,070 --> 00:13:53,230 Porque 12 es menor o igual que 65 299 00:13:53,230 --> 00:13:55,149 Esa se cumplía 300 00:13:55,149 --> 00:13:55,870 Pero esta no 301 00:13:55,870 --> 00:13:59,029 Pues con que una de las dos falle 302 00:13:59,029 --> 00:14:02,129 Ya la condición global es falsa 303 00:14:02,129 --> 00:14:02,590 ¿Vale? 304 00:14:03,230 --> 00:14:05,169 Esa es la lógica booleana de toda la vida 305 00:14:05,169 --> 00:14:07,970 Que a lo mejor habéis estudiado algunos 306 00:14:07,970 --> 00:14:09,330 En matemáticas 307 00:14:09,330 --> 00:14:15,159 ¿Vale? Este sería el antilógico 308 00:14:15,159 --> 00:14:23,399 Lógico 309 00:14:23,399 --> 00:14:29,500 Se tienen que 310 00:14:29,500 --> 00:14:36,179 cumplir 311 00:14:36,179 --> 00:14:38,059 las dos 312 00:14:38,059 --> 00:14:39,360 condiciones 313 00:14:39,360 --> 00:14:44,059 para que la expresión final 314 00:14:44,059 --> 00:14:44,679 sea true 315 00:14:44,679 --> 00:14:50,830 las dos condiciones simultáneamente 316 00:14:50,830 --> 00:14:57,299 ¿vale? 317 00:14:58,159 --> 00:14:59,940 entonces repito, aquí lo complicado no es 318 00:14:59,940 --> 00:15:01,360 entender qué significa la 319 00:15:01,360 --> 00:15:04,179 entender significa que si se cumplen 320 00:15:04,179 --> 00:15:06,220 las dos simultáneamente el resultado final 321 00:15:06,220 --> 00:15:08,259 es true, lo complicado es 322 00:15:08,259 --> 00:15:10,279 cuando me han dado una condición 323 00:15:10,279 --> 00:15:12,279 expresado en castellano 324 00:15:12,279 --> 00:15:14,200 pues traducirlo 325 00:15:14,200 --> 00:15:16,139 yo a una expresión 326 00:15:16,139 --> 00:15:18,220 ya con operadores booleanos que signifiquen 327 00:15:18,220 --> 00:15:19,559 realmente eso, dime 328 00:15:19,559 --> 00:15:22,200 ¿pero con los 65 años pagas o no? 329 00:15:23,460 --> 00:15:24,379 en este caso sí 330 00:15:24,379 --> 00:15:26,220 en este caso es sí 331 00:15:26,220 --> 00:15:27,419 porque es menor o igual 332 00:15:27,419 --> 00:15:30,340 bueno, a ver, yo no sé cómo me va 333 00:15:30,340 --> 00:15:31,139 esto de la jubilación 334 00:15:31,139 --> 00:15:34,200 pero si tú te jubilas a los 65, ¿te jubilas a yo 335 00:15:34,200 --> 00:15:34,940 y cumples 65? 336 00:15:34,940 --> 00:15:35,159 sí 337 00:15:35,159 --> 00:15:38,440 bueno 338 00:15:38,440 --> 00:15:41,440 vale 339 00:15:41,440 --> 00:15:43,799 Bueno, yo es que como me jubilé a los 60 340 00:15:43,799 --> 00:15:49,049 Pues no sé cómo funciona la gente normal 341 00:15:49,049 --> 00:15:55,470 Los profes con 30 años jubilados 342 00:15:55,470 --> 00:15:57,269 A los 60 nos dejan jubilarnos 343 00:15:57,269 --> 00:15:59,009 Con 30, no sé, con 30 o con 32 344 00:15:59,009 --> 00:16:02,730 Pero bueno, yo los tendré 345 00:16:02,730 --> 00:16:04,250 Así que a los 60 podré 346 00:16:04,250 --> 00:16:05,789 No es por daros envidia 347 00:16:05,789 --> 00:16:07,649 Mucha envidia 348 00:16:07,649 --> 00:16:10,590 No hombre, no 349 00:16:10,590 --> 00:16:13,490 De aquí hasta entonces 350 00:16:13,490 --> 00:16:14,870 Tiene que haber cambiado todo mucho 351 00:16:14,870 --> 00:16:19,409 Bueno, hombre, esperemos que sí 352 00:16:19,409 --> 00:16:20,049 Porque si no 353 00:16:20,049 --> 00:16:23,730 Bueno, ya se verá, a todos nos puede cambiar la vida de aquí a mañana 354 00:16:23,730 --> 00:16:25,110 Así que ya veremos 355 00:16:25,110 --> 00:16:27,250 Venga, pues entonces 356 00:16:27,250 --> 00:16:29,490 Vale, aquí obviamente 357 00:16:29,490 --> 00:16:31,309 A lo mejor uno podría haber dicho 358 00:16:31,309 --> 00:16:33,210 Ah, vale 359 00:16:33,210 --> 00:16:37,590 Sí, o sea, si es mayor o igual que 18 360 00:16:37,590 --> 00:16:39,649 Paga, si es menor que 65 361 00:16:39,649 --> 00:16:42,049 paga, vale, pues pongo las dos condiciones 362 00:16:42,049 --> 00:16:43,909 imaginaos 363 00:16:43,909 --> 00:16:45,370 que aquí uno lo ha interpretado 364 00:16:45,370 --> 00:16:46,909 ha puesto el or diciendo, ah vale 365 00:16:46,909 --> 00:16:48,990 pues aquí lógicamente 366 00:16:48,990 --> 00:16:50,570 el programa estaría mal hecho 367 00:16:50,570 --> 00:16:52,309 porque si metes 368 00:16:52,309 --> 00:16:55,950 a un chaval de 37 369 00:16:55,950 --> 00:16:58,049 ese chaval 370 00:16:58,049 --> 00:16:58,730 va a pagar 371 00:16:58,730 --> 00:17:03,450 con este código 372 00:17:03,450 --> 00:17:05,750 va a pagar, yo he cambiado el código y he puesto un or 373 00:17:05,750 --> 00:17:07,630 y ahora meto 374 00:17:07,630 --> 00:17:09,769 Un chavalín de 37 años 375 00:17:09,769 --> 00:17:13,390 Y le toca pagar 376 00:17:13,390 --> 00:17:13,750 ¿Vale? 377 00:17:15,069 --> 00:17:15,430 Claro 378 00:17:15,430 --> 00:17:17,369 Es que os pillo 379 00:17:17,369 --> 00:17:21,309 Ahora voy a meter un chavalín 380 00:17:21,309 --> 00:17:23,250 No, me he confundido yo, estaba pensando en otra cosa 381 00:17:23,250 --> 00:17:24,269 No es que os haya ido a pillar 382 00:17:24,269 --> 00:17:26,509 Lo que yo me quería meter es esto 383 00:17:26,509 --> 00:17:27,890 Voy a meter a un chavalín de 12 384 00:17:27,890 --> 00:17:29,109 ¿Paga o no paga? 385 00:17:29,569 --> 00:17:31,269 No debería 386 00:17:31,269 --> 00:17:33,170 ¿Pero la aplicación va a funcionar bien? 387 00:17:33,890 --> 00:17:35,529 No, porque va a decir que paga 388 00:17:35,529 --> 00:17:36,910 Y no paga 389 00:17:36,910 --> 00:17:38,490 claro, van a pagar 390 00:17:38,490 --> 00:17:41,869 todo lo que sea menor de 65 391 00:17:41,869 --> 00:17:43,049 claro 392 00:17:43,049 --> 00:17:49,309 o sea, van a pagar 393 00:17:49,309 --> 00:17:50,990 todos 394 00:17:50,990 --> 00:17:53,650 porque los mayores de 65 son mayores de 18 395 00:17:53,650 --> 00:17:55,130 entonces 396 00:17:55,130 --> 00:17:57,529 si yo meto mayor de 65, paga porque es mayor que 18 397 00:17:57,529 --> 00:17:59,190 los menores de 65 398 00:17:59,190 --> 00:18:00,269 son 399 00:18:00,269 --> 00:18:03,170 los menores de 18 son mayores de 65 400 00:18:03,170 --> 00:18:04,569 con lo cual también van a pagar 401 00:18:04,569 --> 00:18:06,049 entonces aquí da igual la edad que meta 402 00:18:06,049 --> 00:18:08,250 Entonces este programa estaría mal 403 00:18:08,250 --> 00:18:10,650 Porque yo aquí no he sido cuidadoso 404 00:18:10,650 --> 00:18:12,130 He interpretado que eso es 405 00:18:12,130 --> 00:18:13,529 Ah, ¿pagan los de 18? 406 00:18:13,849 --> 00:18:14,910 ¿Los mayores e iguales? 407 00:18:16,990 --> 00:18:17,390 Claro 408 00:18:17,390 --> 00:18:18,869 Y también los menores 409 00:18:18,869 --> 00:18:21,750 Entonces a lo mejor en este ejemplo es más fácil verlo 410 00:18:21,750 --> 00:18:24,390 Pero en otros ejemplos más complicados no es tan fácil 411 00:18:24,390 --> 00:18:25,170 Verlo 412 00:18:25,170 --> 00:18:26,910 Y uno a lo mejor ha interpretado que es un or 413 00:18:26,910 --> 00:18:28,529 No, no, no, es un an 414 00:18:28,529 --> 00:18:29,630 ¿Vale? O al revés 415 00:18:29,630 --> 00:18:31,009 Vale 416 00:18:31,009 --> 00:18:34,109 Bueno, pues esto así 417 00:18:34,109 --> 00:18:37,230 Bueno, pues entonces ha quedado claro el OR lo que significa 418 00:18:37,230 --> 00:18:39,309 Solo con que una de las dos se cumpla 419 00:18:39,309 --> 00:18:41,029 La total es cierta 420 00:18:41,029 --> 00:18:42,829 Y el no 421 00:18:42,829 --> 00:18:44,670 Está claro también lo que significa 422 00:18:44,670 --> 00:18:45,970 ¿Vale? 423 00:18:47,650 --> 00:18:48,130 Entonces 424 00:18:48,130 --> 00:18:51,450 Por ejemplo, imaginaos que el 425 00:18:51,450 --> 00:18:53,750 Usuario 426 00:18:53,750 --> 00:18:55,410 El cliente de la aplicación me dice 427 00:18:55,410 --> 00:18:58,049 Cámbiame el mensajito por no paga 428 00:18:58,049 --> 00:18:59,869 Entonces tengo que poner aquí 429 00:18:59,869 --> 00:19:00,690 ¿Cuál? 430 00:19:01,690 --> 00:19:03,390 El negado de esa condición 431 00:19:03,390 --> 00:19:05,910 ¿verdad? esta condición 432 00:19:05,910 --> 00:19:07,589 va a ser true si paga 433 00:19:07,589 --> 00:19:09,670 con lo cual 434 00:19:09,670 --> 00:19:11,710 quiero yo que sea false si no paga 435 00:19:11,710 --> 00:19:13,950 luego aquí que tendría que poner 436 00:19:13,950 --> 00:19:17,410 la negada de esta 437 00:19:17,410 --> 00:19:21,250 claro, la contraria 438 00:19:21,250 --> 00:19:22,869 la negada de esta 439 00:19:22,869 --> 00:19:25,089 vale, entonces yo ejecuto esto 440 00:19:25,089 --> 00:19:27,710 le digo, venga, introduce 441 00:19:27,710 --> 00:19:29,569 da 35 442 00:19:29,569 --> 00:19:31,529 no paga igual a false, porque paga 443 00:19:31,529 --> 00:19:32,769 vale 444 00:19:32,769 --> 00:19:35,849 Le meto 12 445 00:19:35,849 --> 00:19:37,450 No paga igual a true 446 00:19:37,450 --> 00:19:39,029 Porque no paga 447 00:19:39,029 --> 00:19:40,190 ¿Vale? 448 00:19:40,589 --> 00:19:43,309 Bueno, entonces estos serían los 449 00:19:43,309 --> 00:19:45,890 Tres operadores 450 00:19:45,890 --> 00:19:49,269 Buleanos o lógicos básicos 451 00:19:49,269 --> 00:19:51,109 Y eso es lo que significan 452 00:19:51,109 --> 00:19:53,640 ¿Vale? 453 00:19:53,680 --> 00:19:55,619 Entonces con estos uno ya hace la condición 454 00:19:55,619 --> 00:19:57,079 Que le dé la gana 455 00:19:57,079 --> 00:19:57,740 ¿Vale? 456 00:19:58,920 --> 00:20:00,400 Entonces ahora ya 457 00:20:00,400 --> 00:20:00,799 ¿Eh? 458 00:20:00,799 --> 00:20:00,839 ¿Eh? 459 00:20:00,839 --> 00:20:15,400 no, mañana estáis todos con Palestina 460 00:20:15,400 --> 00:20:16,039 por lo que veo 461 00:20:16,039 --> 00:20:19,200 vale 462 00:20:19,200 --> 00:20:23,039 vale 463 00:20:23,039 --> 00:20:25,559 entonces ahora ya con operadores así 464 00:20:25,559 --> 00:20:27,460 bueno, vamos a dejarlo así 465 00:20:27,460 --> 00:20:29,720 porque este no paga, quedaba muy confuso 466 00:20:29,720 --> 00:20:30,160 solamente 467 00:20:30,160 --> 00:20:32,920 con operadores, ahora ya 468 00:20:32,920 --> 00:20:35,000 pudiendo hacer operaciones más complicadas 469 00:20:35,000 --> 00:20:37,160 vale, pues a lo mejor podemos ya hacer 470 00:20:37,160 --> 00:20:37,559 pequeñas 471 00:20:37,559 --> 00:20:40,839 programitas que usen el famoso 472 00:20:40,839 --> 00:20:42,720 la asignación condicionada 473 00:20:42,720 --> 00:20:44,400 esa del otro día 474 00:20:44,400 --> 00:20:47,079 vale, y así nos quedan cosas un poco 475 00:20:47,079 --> 00:20:47,660 por ejemplo 476 00:20:47,660 --> 00:20:50,720 vamos a imaginar que el que 477 00:20:50,720 --> 00:20:52,940 me ha pedido esta aplicación me dice 478 00:20:52,940 --> 00:20:54,920 eh, oye, lo de paga true, paga 479 00:20:54,920 --> 00:20:55,380 false 480 00:20:55,380 --> 00:20:58,380 no 481 00:20:58,380 --> 00:21:05,400 No lo veo yo muy claro, no lo veo muy claro. Que me diga, ¿paga o no paga? Que lo entiendo mejor, ¿paga o no paga? 482 00:21:05,400 --> 00:21:05,420 ¿Paga o no paga? 483 00:21:08,019 --> 00:21:19,940 Claro, entonces, eso. ¿Yo aquí qué quiero? ¿Qué cadena quiero? Quiero una de dos. Quiero o la cadena paga o la cadena no paga. Quiero una de dos. 484 00:21:20,420 --> 00:21:29,029 Luego aquí mis alternativas van a ser o esta o esta. Una de las dos. Quiero mostrar. 485 00:21:30,009 --> 00:21:31,950 claro, o esa o esa 486 00:21:31,950 --> 00:21:33,130 yo quiero una de las dos 487 00:21:33,130 --> 00:21:36,170 dependiendo de que pongo la primera 488 00:21:36,170 --> 00:21:37,049 o pongo la segunda 489 00:21:37,049 --> 00:21:40,130 del valor de esa condición que yo ya he 490 00:21:40,130 --> 00:21:41,029 puesto ahí 491 00:21:41,029 --> 00:21:43,970 vale, pues entonces 492 00:21:43,970 --> 00:21:45,990 ahora, esto ya es 493 00:21:45,990 --> 00:21:47,809 una asignación condicionada 494 00:21:47,809 --> 00:21:50,049 porque aquí tengo dos posibles 495 00:21:50,049 --> 00:21:51,990 valores, que va a recibir este 496 00:21:51,990 --> 00:21:54,109 tío, el print, tengo dos posibles 497 00:21:54,109 --> 00:21:56,069 valores, este y este, separados 498 00:21:56,069 --> 00:21:57,630 por los dos puntos, este y este 499 00:21:57,630 --> 00:22:00,250 de que depende que aquí a este punto 500 00:22:00,250 --> 00:22:01,849 o a la asignación que sea 501 00:22:01,849 --> 00:22:03,970 llegue este o llegue este otro 502 00:22:03,970 --> 00:22:06,190 de que depende del valor 503 00:22:06,190 --> 00:22:07,970 de esta condición, si es true 504 00:22:07,970 --> 00:22:09,950 el que cuenta 505 00:22:09,950 --> 00:22:12,309 es este y el otro se va a la basura 506 00:22:12,309 --> 00:22:13,730 si es false 507 00:22:13,730 --> 00:22:16,109 este se va a la basura y el que cuenta 508 00:22:16,109 --> 00:22:17,630 es este, entonces ahora 509 00:22:17,630 --> 00:22:20,089 este programa pues nos queda más bonito 510 00:22:20,089 --> 00:22:21,589 45 511 00:22:21,589 --> 00:22:27,150 si, 12 512 00:22:27,150 --> 00:22:27,609 no 513 00:22:27,609 --> 00:22:30,289 y así todo el rato 514 00:22:30,289 --> 00:22:32,390 76, no 515 00:22:32,390 --> 00:22:34,849 vale, es una forma 516 00:22:34,849 --> 00:22:36,210 de retocar el programita 517 00:22:36,210 --> 00:22:37,710 ya es un programa 518 00:22:37,710 --> 00:22:40,410 un pelín más sofisticado de los que hemos hecho 519 00:22:40,410 --> 00:22:42,549 un pelín más, le doy una edad 520 00:22:42,549 --> 00:22:44,269 y si está en un rango de valores 521 00:22:44,269 --> 00:22:45,250 me dice si paga o no 522 00:22:45,250 --> 00:22:48,390 vale, pues vamos a volver ahora 523 00:22:48,390 --> 00:22:50,009 al listado ese de 524 00:22:50,009 --> 00:22:51,529 ejercer 525 00:22:51,529 --> 00:22:54,049 perdón, perdón 526 00:22:54,049 --> 00:23:01,059 lo que habría dentro del system.out.println 527 00:23:01,059 --> 00:23:01,559 es esto 528 00:23:01,559 --> 00:23:23,750 vale, pues vamos a abrir 529 00:23:23,750 --> 00:23:25,789 un momentito esto, a ver si encontramos 530 00:23:25,789 --> 00:23:27,410 antes de seguir con 531 00:23:27,410 --> 00:23:32,069 las otras versiones de operador 532 00:23:32,069 --> 00:23:33,930 y liaros más 533 00:23:33,930 --> 00:23:35,609 vamos a ver 534 00:23:35,609 --> 00:23:37,250 tenemos ya en la siguiente tanda 535 00:23:37,250 --> 00:23:42,480 algún ejercicio 536 00:23:42,480 --> 00:23:43,220 para 537 00:23:43,220 --> 00:23:48,059 descansar este ratito 538 00:23:48,059 --> 00:24:01,210 Vale, pues por ejemplo 539 00:24:01,210 --> 00:24:02,710 Venga, para ir por orden 540 00:24:02,710 --> 00:24:03,910 Venga 541 00:24:03,910 --> 00:24:06,710 El que no lo haya hecho, que haga el 13 542 00:24:06,710 --> 00:24:08,049 ¿Vale? 543 00:24:10,049 --> 00:24:11,250 Vale, hacedlo ahora 544 00:24:11,250 --> 00:24:13,369 Y antes de irnos 545 00:24:13,369 --> 00:24:14,509 Lo vemos 546 00:24:14,509 --> 00:24:17,390 Si no está tiempo a hacer otro, pues