1 00:00:00,000 --> 00:00:01,320 Pues que no se ría, silencio. 2 00:00:02,279 --> 00:00:03,779 Que nadie se ría ni haga nada. 3 00:00:04,379 --> 00:00:05,339 Vale, pues entonces, 4 00:00:05,820 --> 00:00:07,660 The Flow at the Double, un poco más. 5 00:00:08,119 --> 00:00:10,439 ¿Vale? Sabemos que son tipos primitivos y para qué se usan. 6 00:00:11,240 --> 00:00:11,919 ¿Vale? Por ejemplo, 7 00:00:12,140 --> 00:00:13,919 vamos a hacer una última cosita 8 00:00:13,919 --> 00:00:14,939 antes de saltar 9 00:00:14,939 --> 00:00:16,640 a otra cosa. 10 00:00:18,699 --> 00:00:20,219 Por ejemplo, vamos a meter 11 00:00:20,219 --> 00:00:21,239 en 12 00:00:21,239 --> 00:00:25,489 un... 13 00:00:25,489 --> 00:00:27,769 Bueno, no, no, no, porque eso nos va a llevar a otra cosa. 14 00:00:27,769 --> 00:00:29,429 Ya lo haremos. Vale, nada. 15 00:00:29,429 --> 00:00:31,969 bueno, pues ya está, ninguna duda sobre esto 16 00:00:31,969 --> 00:00:34,070 vale, ¿qué más tipos de datos 17 00:00:34,070 --> 00:00:35,810 primitivos teníamos? hemos visto 18 00:00:35,810 --> 00:00:37,250 números enteros 19 00:00:37,250 --> 00:00:38,929 byte, short, int y long 20 00:00:38,929 --> 00:00:41,210 números decimales, con par de decimal 21 00:00:41,210 --> 00:00:42,189 float y double 22 00:00:42,189 --> 00:00:45,149 y luego el de verdadero o falso 23 00:00:45,149 --> 00:00:48,270 muy bien, vale, algo habéis estudiado 24 00:00:48,270 --> 00:00:49,229 vale, vale, muy bien 25 00:00:49,229 --> 00:00:51,570 tenemos efectivamente era el char y el boolean 26 00:00:51,570 --> 00:00:54,009 vale, bueno, pues entonces 27 00:00:54,009 --> 00:00:56,009 vamos a 28 00:00:56,009 --> 00:00:57,890 ver aquí en este 29 00:00:57,890 --> 00:00:58,530 proyecto 30 00:00:58,530 --> 00:01:03,670 de variables 31 00:01:03,670 --> 00:01:05,870 ejemplos de variables enteras, lectura de teclado 32 00:01:05,870 --> 00:01:08,650 vamos a hacer otra clase 33 00:01:08,650 --> 00:01:12,109 para ejemplo char 34 00:01:12,109 --> 00:01:17,709 claro, tenemos ya nuestra clasecita 35 00:01:17,709 --> 00:01:20,409 lo digo porque como este proyecto lo subiré a la ola virtual 36 00:01:20,409 --> 00:01:23,609 nuestra clasecita con los ejemplos de variables enteras 37 00:01:23,609 --> 00:01:24,250 que hemos hecho 38 00:01:24,250 --> 00:01:27,689 nuestro ejemplo con lectura del teclado 39 00:01:27,689 --> 00:01:29,329 Y ahora nuestra clase cita 40 00:01:29,329 --> 00:01:30,010 Para ejemplo 41 00:01:30,010 --> 00:01:34,890 Y se me ha olvidado escribir 42 00:01:34,890 --> 00:01:37,209 Pero marcar que haga solo este método 43 00:01:37,209 --> 00:01:39,590 Pero no pasa nada 44 00:01:39,590 --> 00:01:41,650 Porque lo sabemos de memoria 45 00:01:41,650 --> 00:01:43,450 Entonces si no hemos marcado el check 46 00:01:43,450 --> 00:01:45,930 Pues lo escribimos aquí estupendamente 47 00:01:45,930 --> 00:01:47,090 Vale 48 00:01:47,090 --> 00:01:50,750 Para que usamos 49 00:01:50,750 --> 00:01:53,650 Para que usamos una variable 50 00:01:53,650 --> 00:01:54,909 De tipo char 51 00:01:54,909 --> 00:01:56,870 Única y exclusiva 52 00:01:56,870 --> 00:02:01,950 Solo vale para una cosa, para guardar un único carácter, nada más. 53 00:02:02,150 --> 00:02:03,730 Para guardar un único... 54 00:02:03,730 --> 00:02:05,349 ¡Silencio! 55 00:02:07,959 --> 00:02:10,319 Para guardar un único carácter, ¿vale? 56 00:02:10,439 --> 00:02:11,539 Para eso vale, ya está. 57 00:02:12,620 --> 00:02:16,439 Entonces, si nosotros le queremos hacer una asignación tal cual, 58 00:02:16,580 --> 00:02:18,680 quiero guardar el carácter dólar. 59 00:02:20,259 --> 00:02:23,879 Pues no pasa nada, podemos asignar cualquier cosa que sea un char. 60 00:02:23,879 --> 00:02:26,539 ¿Y cómo indicamos que algo es un char? 61 00:02:26,539 --> 00:02:29,560 Con comillas simples 62 00:02:29,560 --> 00:02:31,360 Con comillas simples 63 00:02:31,360 --> 00:02:33,699 Esta es la única manera de indicarlo 64 00:02:33,699 --> 00:02:34,919 Nada de comillas dobles 65 00:02:34,919 --> 00:02:37,340 Si yo pongo una comilla doble 66 00:02:37,340 --> 00:02:40,240 Obviamente la he cagado 67 00:02:40,240 --> 00:02:42,219 El compilador me da un error 68 00:02:42,219 --> 00:02:44,800 Porque me dice, oye, este tipo no es compatible 69 00:02:44,800 --> 00:02:46,300 Con una variable char 70 00:02:46,300 --> 00:02:50,520 Bueno, busca en tu teclado 71 00:02:50,520 --> 00:02:53,199 Yo la tengo arriba, debajo de la interrogación 72 00:02:53,199 --> 00:03:05,110 entonces, cuando uno 73 00:03:05,110 --> 00:03:06,789 quiere poner un char 74 00:03:06,789 --> 00:03:08,189 se ve 75 00:03:08,189 --> 00:03:11,090 el tamaño de letra se ve desde atrás 76 00:03:11,090 --> 00:03:20,659 entonces, cuando yo quiero 77 00:03:20,659 --> 00:03:23,060 poner un char a capón, comillas simples 78 00:03:23,060 --> 00:03:24,659 ¿vale? no hay otra 79 00:03:24,659 --> 00:03:25,259 alternativa 80 00:03:25,259 --> 00:03:27,960 ¿y ahí qué char puedo poner? 81 00:03:28,840 --> 00:03:30,199 el char que me dé la gana 82 00:03:30,199 --> 00:03:32,060 cualquier carácter 83 00:03:32,060 --> 00:03:33,659 cualquier carácter 84 00:03:33,659 --> 00:03:35,419 de los que se escriben en un teclado 85 00:03:35,419 --> 00:03:36,780 cualquier carácter puedo poner 86 00:03:36,780 --> 00:03:37,900 lo que a mí me dé la gana 87 00:03:37,900 --> 00:03:38,680 ¿vale? un char 88 00:03:38,680 --> 00:03:46,259 bueno, cuando tú necesites 89 00:03:46,259 --> 00:03:47,460 un carácter para algo 90 00:03:47,460 --> 00:03:49,620 pues a lo mejor estás metiendo una entrada 91 00:03:49,620 --> 00:03:51,879 donde quieres guardar sí o no 92 00:03:51,879 --> 00:03:53,620 lo típico, introduzca 93 00:03:53,620 --> 00:03:54,960 S o N 94 00:03:54,960 --> 00:03:57,840 El char ese para decir que sí 95 00:03:57,840 --> 00:03:59,159 El char para decir que no 96 00:03:59,159 --> 00:04:01,479 En las situaciones en las que una variable 97 00:04:01,479 --> 00:04:03,599 Que guarda un único carácter pueda tener su interés 98 00:04:03,599 --> 00:04:05,099 Normalmente 99 00:04:05,099 --> 00:04:06,759 A ver, la pregunta tiene sentido 100 00:04:06,759 --> 00:04:08,539 Porque un carácter por sí mismo 101 00:04:08,539 --> 00:04:10,740 Es cierto que poca información tiene 102 00:04:10,740 --> 00:04:12,300 Normalmente el char 103 00:04:12,300 --> 00:04:14,360 Para lo que vale es para usarlo 104 00:04:14,360 --> 00:04:16,980 En un tipo de dato ya complejo objeto 105 00:04:16,980 --> 00:04:18,319 Y muchos char 106 00:04:18,319 --> 00:04:19,759 Ya te hacen una cadena 107 00:04:19,759 --> 00:04:21,220 ¿Vale? Eso ya lo 108 00:04:21,220 --> 00:04:24,699 Pero el char es un único carácter 109 00:04:24,699 --> 00:04:28,079 Vale, ¿qué caracteres podemos poner aquí? 110 00:04:28,860 --> 00:04:31,180 Cualquier carácter de la tabla ASTI 111 00:04:31,180 --> 00:04:35,980 Cualquier carácter que esté recogido en la tabla ASTI 112 00:04:35,980 --> 00:04:39,920 Vamos a buscar aquí que es una tabla ASTI 113 00:04:39,920 --> 00:04:42,920 A ver si nos sale una bonita 114 00:04:42,920 --> 00:04:47,220 Por ejemplo 115 00:04:47,220 --> 00:04:51,079 Esto es una tabla ASTI 116 00:04:51,079 --> 00:04:53,439 Que te guarda 117 00:04:53,439 --> 00:04:54,540 Te indica 118 00:04:54,540 --> 00:04:56,939 te indica todos los caracteres 119 00:04:56,939 --> 00:04:58,959 imprimibles por los editores de texto 120 00:04:58,959 --> 00:05:00,660 ¿Veis? Todos, espacio, 121 00:05:00,860 --> 00:05:02,879 ordenación, todos estos que están aquí 122 00:05:02,879 --> 00:05:04,019 a la 123 00:05:04,019 --> 00:05:06,800 derecha de cada columna son todos 124 00:05:06,800 --> 00:05:08,759 los caracteres imprimibles 125 00:05:08,759 --> 00:05:10,120 por los editores de texto. 126 00:05:10,660 --> 00:05:11,600 Todos estos son imprimibles. 127 00:05:12,959 --> 00:05:14,779 Estos son los de 128 00:05:14,779 --> 00:05:16,699 toda la vida. Luego está el extendido 129 00:05:16,699 --> 00:05:18,300 donde tienes más caracteres. 130 00:05:19,779 --> 00:05:21,060 Estos son caracteres 131 00:05:21,060 --> 00:05:22,540 así, lo que pasa es que estos no son 132 00:05:22,540 --> 00:05:24,540 imprimibles, imprimibles significa 133 00:05:24,540 --> 00:05:26,579 que si un editor de texto se los 134 00:05:26,579 --> 00:05:28,240 encuentra, tú no los ves 135 00:05:28,240 --> 00:05:30,180 o sea, están ahí guardados en el fichero 136 00:05:30,180 --> 00:05:32,839 pues como el fin de línea, nueva página 137 00:05:32,839 --> 00:05:34,360 no se ven 138 00:05:34,360 --> 00:05:36,540 pero están ahí para indicar que hay un salto 139 00:05:36,540 --> 00:05:37,939 de línea, que hay un fin de fichero 140 00:05:37,939 --> 00:05:39,980 ¿vale? entonces todo esto de aquí 141 00:05:39,980 --> 00:05:42,439 son caracteres de la tabla ASCII y en 142 00:05:42,439 --> 00:05:44,459 particular, estos de aquí son 143 00:05:44,459 --> 00:05:46,420 los que se llaman imprimibles, entonces cuando un editor 144 00:05:46,420 --> 00:05:48,519 de texto, un blog de notas, el WordPad 145 00:05:48,519 --> 00:05:49,120 el que sea 146 00:05:49,120 --> 00:05:52,500 está leyendo bits de un fichero de texto 147 00:05:52,500 --> 00:05:54,540 él los va cogiendo de 8 en 8 148 00:05:54,540 --> 00:05:56,519 coge el primer pack de 8 bits 149 00:05:56,519 --> 00:05:58,420 mira a ver el numerito que codifica 150 00:05:58,420 --> 00:06:01,220 codifica el 40, pues se va a la tabla 151 00:06:01,220 --> 00:06:03,079 y mira que en el 40 152 00:06:03,079 --> 00:06:04,959 hay una, un este, pues entonces 153 00:06:04,959 --> 00:06:07,279 planta en tu blog de notas ese simbolito 154 00:06:07,279 --> 00:06:09,060 vale, se coge el siguiente pack 155 00:06:09,060 --> 00:06:09,660 de 8 bits 156 00:06:09,660 --> 00:06:12,959 codifica el 139 157 00:06:12,959 --> 00:06:14,500 pues se va a la tabla 158 00:06:14,500 --> 00:06:16,899 139 es este, pues coge este 159 00:06:16,899 --> 00:06:19,319 simbolito, lo ahí condieres y te lo planta en el editor de texto 160 00:06:19,319 --> 00:06:21,339 vale, así funcionan los editores de texto 161 00:06:21,339 --> 00:06:23,740 cogen los ficheros, van cogiendo 162 00:06:23,740 --> 00:06:25,879 de 8 en 8, se van a la tabla 163 00:06:25,879 --> 00:06:27,339 ASTI para ver a qué carácter 164 00:06:27,339 --> 00:06:29,579 corresponde el numerito que hay codificado 165 00:06:29,579 --> 00:06:31,199 en binario en esos 8 bits 166 00:06:31,199 --> 00:06:33,860 y luego eso aparece 167 00:06:33,860 --> 00:06:35,939 impreso y tú ya lo ves, eso forma un texto y lo que sea 168 00:06:35,939 --> 00:06:38,199 ¿vale? y cuando guardamos 169 00:06:38,199 --> 00:06:39,879 escribimos en el blog 170 00:06:39,879 --> 00:06:41,879 de notas un fichero de texto con el teclado 171 00:06:41,879 --> 00:06:43,259 Pepito se fue a navegar 172 00:06:43,259 --> 00:06:45,540 y luego le damos a guardar, pues lo mismo 173 00:06:45,540 --> 00:06:47,180 ese editor 174 00:06:47,180 --> 00:06:49,579 Pepito coge la P, la P 175 00:06:49,579 --> 00:06:51,519 ¿dónde está la p? aquí 176 00:06:51,519 --> 00:06:53,420 80, vale, mando 177 00:06:53,420 --> 00:06:55,399 un byte que codifica 80 178 00:06:55,399 --> 00:06:57,939 al fichero, pepito, ¿dónde está la e? 179 00:06:58,180 --> 00:06:59,740 aquí, 69, muy bien 180 00:06:59,740 --> 00:07:01,600 pues cojo 69, lo codifico en binario 181 00:07:01,600 --> 00:07:03,660 al fichero, ¿vale? así es como funcionan 182 00:07:03,660 --> 00:07:05,019 los editores de texto 183 00:07:05,019 --> 00:07:07,779 guardando en los ficheros de texto 184 00:07:07,779 --> 00:07:09,800 números enteros 185 00:07:09,800 --> 00:07:11,959 cada uno de ellos en 8 bits 186 00:07:11,959 --> 00:07:12,980 8 bits, 8 bits 187 00:07:12,980 --> 00:07:15,740 y a la hora de verlo ya y representarlo 188 00:07:15,740 --> 00:07:17,420 en el editor, se corresponden con 189 00:07:17,420 --> 00:07:18,879 este símbolo 190 00:07:18,879 --> 00:07:21,120 ¿Vale? ¿Te ibas a preguntar algo? 191 00:07:22,779 --> 00:07:25,600 Vale, pues muy bien. 192 00:07:26,639 --> 00:07:32,180 Pues entonces, como por tanto cada carácter imprimible, cada char para Java, 193 00:07:32,699 --> 00:07:37,819 tiene una correspondencia con un número entero, pues para facilitar esa flexibilidad, 194 00:07:39,699 --> 00:07:42,439 nosotros también podemos inicializar caracteres char de esta manera. 195 00:07:46,089 --> 00:07:49,269 Por ejemplo, pongo ahí un entero y me lo ha permitido. 196 00:07:49,269 --> 00:07:52,269 entonces, la máquina virtual de Java 197 00:07:52,269 --> 00:07:53,649 al ver el 90 diría 198 00:07:53,649 --> 00:07:56,050 este es el número entero 90 199 00:07:56,050 --> 00:07:58,189 pero luego ve que le toca a un char 200 00:07:58,189 --> 00:07:59,870 entonces dice, ah, vale 201 00:07:59,870 --> 00:08:02,129 no te refieres al número entero 90 202 00:08:02,129 --> 00:08:04,029 te refieres, justo 203 00:08:04,029 --> 00:08:06,069 te refieres al carácter de la tabla ASTI 204 00:08:06,069 --> 00:08:07,410 que está en la posición 90 205 00:08:07,410 --> 00:08:09,149 entonces se iría aquí 206 00:08:09,149 --> 00:08:11,949 y lo que estaría guardando 207 00:08:11,949 --> 00:08:13,069 realmente 208 00:08:13,069 --> 00:08:15,769 en ese 209 00:08:15,769 --> 00:08:18,569 char sería la Z mayúscula 210 00:08:18,569 --> 00:08:51,100 Vale, entonces vamos a probar esto, vale, esto está claro, que si ahora yo imprimo el carácter, vale, entonces, esto primero está claro, yo voy a darle el ampersand este 211 00:08:51,100 --> 00:08:54,500 y cuando haga print 212 00:08:54,500 --> 00:08:56,379 carácter, pues me mostrará 213 00:08:56,379 --> 00:08:58,320 la ampersand, y ahora voy a darle 90 214 00:08:58,320 --> 00:08:59,419 y voy a ver que me muestra 215 00:08:59,419 --> 00:09:02,860 ejecutamos esto 216 00:09:02,860 --> 00:09:07,759 donde está 217 00:09:07,759 --> 00:09:09,980 y veis, ha mostrado 218 00:09:09,980 --> 00:09:10,919 z mayúscula 219 00:09:10,919 --> 00:09:15,779 claro, si tú quieres poner el carácter tal cual 220 00:09:15,779 --> 00:09:17,259 entre comillas simples 221 00:09:17,259 --> 00:09:19,220 simples, simples, simples 222 00:09:19,220 --> 00:09:20,840 si son dobles, entonces es otra cosa 223 00:09:20,840 --> 00:09:22,639 y te va a decir el compilador que no casa 224 00:09:22,639 --> 00:09:23,879 simples 225 00:09:23,879 --> 00:09:25,500 pero 226 00:09:25,500 --> 00:09:28,659 vale 227 00:09:28,659 --> 00:09:31,899 y repito, otra forma 228 00:09:31,899 --> 00:09:33,100 de darle un char 229 00:09:33,100 --> 00:09:36,240 es poner el numerito entero al que se corresponde 230 00:09:36,240 --> 00:09:37,860 vale, entonces en este caso 231 00:09:37,860 --> 00:09:39,460 esta sentencia dólar 232 00:09:39,460 --> 00:09:41,559 y si yo busco aquí 233 00:09:41,559 --> 00:09:43,620 el ampersand este, que es aquí 234 00:09:43,620 --> 00:09:47,779 el 38, pues 235 00:09:47,779 --> 00:09:49,559 aquí estoy haciendo lo mismo 236 00:09:49,559 --> 00:09:52,120 dándole el ampersand 237 00:09:52,120 --> 00:09:53,820 este y dándole 38 238 00:09:53,820 --> 00:09:56,139 estoy haciendo exactamente 239 00:09:56,139 --> 00:09:56,740 lo mismo 240 00:09:56,740 --> 00:10:25,870 Y de hecho, si lo ejecuto, pues en ambos casos estoy mostrando la misma cosa, ¿vale? Entonces, esto da mucha flexibilidad, porque imaginaos cuando ya tengamos que elaborar condiciones, por ejemplo, podemos adelantar un poquito, imaginaos que uno quisiera expresar en Java la condición de, tiene un char, y quieres pasar la condición de ser letra mayúscula. 241 00:10:25,870 --> 00:10:27,789 pues 242 00:10:27,789 --> 00:10:30,909 la condición se quedaría muy compleja 243 00:10:30,909 --> 00:10:32,669 si no tenemos en cuenta 244 00:10:32,669 --> 00:10:35,090 que cada char se corresponde 245 00:10:35,090 --> 00:10:36,769 con un mito entero, porque esa condición sería 246 00:10:36,769 --> 00:10:38,629 que el carácter sea igual a A 247 00:10:38,629 --> 00:10:40,850 o que sea igual a B, o que sea igual a C 248 00:10:40,850 --> 00:10:43,250 o que sea igual a D, la condición sería enorme 249 00:10:43,250 --> 00:10:44,929 tendría que hacer 250 00:10:44,929 --> 00:10:46,549 si es igual a todas y cada una de ellas 251 00:10:46,549 --> 00:10:49,269 pero, con esta flexibilidad 252 00:10:49,269 --> 00:10:50,649 que me dejaba de tratar 253 00:10:50,649 --> 00:10:53,129 indistintamente el char 254 00:10:53,129 --> 00:10:54,690 como el número entero que codifica 255 00:10:54,690 --> 00:10:56,710 la condición de que un char 256 00:10:56,710 --> 00:10:59,149 sea mayúscula la podría poner 257 00:10:59,149 --> 00:11:00,669 si ese char es 258 00:11:00,669 --> 00:11:03,330 mayor o igual 259 00:11:03,330 --> 00:11:04,309 que 65 260 00:11:04,309 --> 00:11:06,590 y menor o igual que 90 261 00:11:06,590 --> 00:11:09,190 se queda mucho más sencillo 262 00:11:09,190 --> 00:11:09,350 ¿eh? 263 00:11:12,129 --> 00:11:13,269 no, con el mayor 264 00:11:13,269 --> 00:11:13,909 que menor que 265 00:11:13,909 --> 00:11:16,830 ¿vale? 266 00:11:16,909 --> 00:11:19,129 ahora cuando veamos el boolean ya podemos usarlo 267 00:11:19,129 --> 00:11:20,610 a ver, lo que quiero decir es que 268 00:11:20,610 --> 00:11:22,490 lo único que quería decir ahora es que 269 00:11:22,490 --> 00:11:41,269 El hecho de que un char pueda recibir tanto el numerito entero o el char a capón con la comilla, facilita luego el escribir ciertas sentencias, lo facilita, el poder tratarlo indistintamente, ¿vale? Y con los booleans, las condiciones, lo vamos a ver más claro, ¿vale? 270 00:11:41,269 --> 00:11:44,710 Entonces 271 00:11:44,710 --> 00:11:49,940 Vale 272 00:11:49,940 --> 00:11:52,059 Aquí, por ejemplo 273 00:11:52,059 --> 00:11:55,879 Vamos a 274 00:11:55,879 --> 00:11:57,159 Para 275 00:11:57,159 --> 00:11:59,679 Aquí, por ejemplo, a ver qué pasa 276 00:11:59,679 --> 00:12:01,799 Voy a poner 277 00:12:01,799 --> 00:12:03,659 Carácter más 278 00:12:03,659 --> 00:12:04,860 Carácter 279 00:12:04,860 --> 00:12:07,059 Recordad que el operador más 280 00:12:07,059 --> 00:12:09,899 Aunque todavía no hemos visto la lista 281 00:12:09,899 --> 00:12:11,759 De operadores en detalle, que la veremos 282 00:12:11,759 --> 00:12:13,860 Cuando veamos expresiones, cuando ya hayamos 283 00:12:13,860 --> 00:12:15,480 Terminado los tipos primitivos de datos 284 00:12:15,480 --> 00:12:18,320 ya más o menos estamos 285 00:12:18,320 --> 00:12:20,419 viendo que el carácter más 286 00:12:20,419 --> 00:12:22,600 el perdón, el operador más 287 00:12:22,600 --> 00:12:24,620 es un operador 288 00:12:24,620 --> 00:12:28,500 que tiene diferente comportamiento 289 00:12:28,500 --> 00:12:30,240 en función de lo que tenga a los lados 290 00:12:30,240 --> 00:12:32,019 el operador más 291 00:12:32,019 --> 00:12:34,159 si tiene números, no hay duda 292 00:12:34,159 --> 00:12:35,519 es una suma algebraica 293 00:12:35,519 --> 00:12:38,340 claro, y si una 294 00:12:38,340 --> 00:12:40,240 de las dos cosas, solo con que una 295 00:12:40,240 --> 00:12:42,059 de las dos sea una cadena 296 00:12:42,059 --> 00:12:44,200 ya, o sea algo entre 297 00:12:44,200 --> 00:12:46,259 comillas dobles, algo entre comillas 298 00:12:46,259 --> 00:12:48,559 dobles ya interpreta que está concatenando 299 00:12:48,559 --> 00:12:50,279 entonces si lo estamos poniendo 300 00:12:50,279 --> 00:12:52,519 algo entre comillas dobles más un numerito 301 00:12:52,519 --> 00:12:54,039 lo que hace es ese numerito 302 00:12:54,039 --> 00:12:56,480 concatenarlo como si fuera una cadena al otro 303 00:12:56,480 --> 00:12:58,100 ¿vale? pues vamos a ver aquí que pasaría 304 00:12:58,100 --> 00:12:59,480 porque aquí es una situación rara, ¿no? 305 00:13:00,000 --> 00:13:02,460 porque carácter, son caracteres 306 00:13:02,460 --> 00:13:04,159 en realidad, pero les estoy dando el valor 307 00:13:04,159 --> 00:13:06,259 de un número entero, vamos a ver aquí 308 00:13:06,259 --> 00:13:07,220 el operador más 309 00:13:07,220 --> 00:13:10,039 ¿qué estaría haciendo? porque tenemos 310 00:13:10,039 --> 00:13:11,480 dos alternativas, que me muestre 311 00:13:11,480 --> 00:13:14,559 Dos ampersand seguidos 312 00:13:14,559 --> 00:13:17,019 O que me muestre 38 más 38 313 00:13:17,019 --> 00:13:18,740 Depende de cómo haya funcionado este operador 314 00:13:18,740 --> 00:13:20,080 Aquí, en este caso raro 315 00:13:20,080 --> 00:13:21,419 En ese caso 316 00:13:21,419 --> 00:13:24,899 El carácter número 38 también va a ser ampersand 317 00:13:24,899 --> 00:13:26,919 Sí, sí, sí 318 00:13:26,919 --> 00:13:28,440 He buscado el 38 319 00:13:28,440 --> 00:13:29,440 Pero de hecho es igual que este 320 00:13:29,440 --> 00:13:31,220 De hecho cuando hemos hecho la ejecución anterior 321 00:13:31,220 --> 00:13:33,480 Me había mostrado lo mismo las dos veces 322 00:13:33,480 --> 00:13:36,259 Esto la mejor manera es probarlo 323 00:13:36,259 --> 00:13:37,519 Para ver cómo funciona 324 00:13:37,519 --> 00:13:38,639 Entonces lo 325 00:13:38,639 --> 00:13:41,279 Probamos 326 00:13:41,279 --> 00:13:46,279 ¿Por qué me falta un...? 327 00:13:46,279 --> 00:13:47,120 Ah, vale, sí, sí 328 00:13:47,120 --> 00:13:49,500 ¿Veis? ¿Qué me ha mostrado? 329 00:13:51,500 --> 00:13:52,960 38 más 38 330 00:13:52,960 --> 00:13:54,559 ¿Vale? 331 00:13:55,600 --> 00:13:56,159 Claro 332 00:13:56,159 --> 00:14:04,039 Claro, porque aquí 333 00:14:04,039 --> 00:14:05,799 El operador más 334 00:14:05,799 --> 00:14:07,700 Cuando tiene caracteres 335 00:14:07,700 --> 00:14:10,340 Hace la operación con el número entero 336 00:14:10,340 --> 00:14:11,580 Con el número entero 337 00:14:11,580 --> 00:14:13,799 Entonces, él hace la operación con el número entero 338 00:14:13,799 --> 00:14:16,139 Entonces, le sale 38 más 38 339 00:14:16,139 --> 00:14:18,639 entonces cuidado 340 00:14:18,639 --> 00:14:21,039 con el operador más en función de 341 00:14:21,039 --> 00:14:22,139 con lo que esté operando 342 00:14:22,139 --> 00:14:28,269 entonces, ¿qué queremos nosotros mostrar 343 00:14:28,269 --> 00:14:30,409 nosotros en Persan? pues efectivamente 344 00:14:30,409 --> 00:14:32,629 podemos hacer este truco 345 00:14:32,629 --> 00:14:33,970 entonces cada vez que nos salgan 346 00:14:33,970 --> 00:14:35,309 cosas raras 347 00:14:35,309 --> 00:14:37,789 con el operador suma 348 00:14:37,789 --> 00:14:40,289 claro, entonces yo pongo este string 349 00:14:40,289 --> 00:14:42,470 entre medias, pongo este string 350 00:14:42,470 --> 00:14:44,029 entonces ahora ya 351 00:14:44,029 --> 00:14:46,789 ya no tiene dos enteros a cada lado 352 00:14:46,789 --> 00:14:49,210 porque aquí tiene una primera suma 353 00:14:49,210 --> 00:14:51,690 porque las operaciones, cuando tengo una expresión compleja 354 00:14:51,690 --> 00:14:52,750 con varias operaciones 355 00:14:52,750 --> 00:14:54,710 se van haciendo de izquierda a derecha 356 00:14:54,710 --> 00:14:56,769 entonces primero hará esta 357 00:14:56,769 --> 00:14:58,350 aquí tiene un string 358 00:14:58,350 --> 00:15:00,389 entonces ya interpreta concatenación 359 00:15:00,389 --> 00:15:03,629 y ahora ya esto se ha quedado 360 00:15:03,629 --> 00:15:04,389 como cadena 361 00:15:04,389 --> 00:15:07,769 porque ha concatenado con una cadena de texto 362 00:15:07,769 --> 00:15:09,549 entonces una cadena con esto 363 00:15:09,549 --> 00:15:10,029 de nuevo 364 00:15:10,029 --> 00:15:13,570 entonces son pequeñas cosas 365 00:15:13,570 --> 00:15:14,730 que nos van surgiendo 366 00:15:14,730 --> 00:15:18,169 para que, bueno, nos vayamos familiarizando. 367 00:15:19,929 --> 00:15:20,809 ¿Vale? ¿Ahora ya? 368 00:15:21,129 --> 00:15:21,809 Ahora ya, sí. 369 00:15:26,629 --> 00:15:27,110 Entonces. 370 00:15:39,980 --> 00:15:40,460 Bueno. 371 00:15:40,460 --> 00:15:48,639 a ver 372 00:15:48,639 --> 00:15:53,870 lo que guarda, en realidad lo que guarda 373 00:15:53,870 --> 00:15:55,629 es el número entero que se codifica 374 00:15:55,629 --> 00:15:57,509 con la tabla ASCII y el matiz es 375 00:15:57,509 --> 00:15:59,690 que en función del uso 376 00:15:59,690 --> 00:16:00,529 que tú le des 377 00:16:00,529 --> 00:16:03,649 lo va a interpretar de una manera u otra, entonces cuando lo hemos pasado 378 00:16:03,649 --> 00:16:05,590 directamente a palo seco 379 00:16:05,590 --> 00:16:07,110 le hemos pasado este 380 00:16:07,110 --> 00:16:11,529 a ver, espérate que vamos a poner aquí 381 00:16:11,529 --> 00:16:12,169 este otro 382 00:16:12,169 --> 00:16:14,490 ahí para que se vea 383 00:16:14,490 --> 00:16:16,370 entonces 384 00:16:16,370 --> 00:16:20,200 aquí 385 00:16:20,200 --> 00:16:21,879 cuando le hemos pasado 386 00:16:21,879 --> 00:16:23,500 carácter a esto 387 00:16:23,500 --> 00:16:25,860 dándole a carácter 38 388 00:16:25,860 --> 00:16:28,340 está guardando 389 00:16:28,340 --> 00:16:29,840 exactamente lo mismo que si le das esto 390 00:16:29,840 --> 00:16:30,679 lo que guardas es lo mismo 391 00:16:30,679 --> 00:16:33,759 el tema es, ¿quién está usando ahora esta variable? 392 00:16:33,919 --> 00:16:34,659 ¿quién la está usando? 393 00:16:35,179 --> 00:16:37,320 pues ahora mismo la está usando esta sentencia 394 00:16:37,320 --> 00:16:39,059 entonces esta sentencia 395 00:16:39,059 --> 00:16:41,139 como ve que es char 396 00:16:41,139 --> 00:16:43,639 te hace la conversión al carácter astro 397 00:16:43,639 --> 00:16:45,600 Pero porque esta sentencia trabaja así. 398 00:16:46,220 --> 00:16:48,100 Vale, el operador más es otra historia. 399 00:16:48,899 --> 00:16:50,440 Entonces, el operador más ahora es otro uso. 400 00:16:51,480 --> 00:16:52,720 Ahora, tenemos esta situación. 401 00:16:53,580 --> 00:16:56,100 Ahora, el operador más también trabaja con estas dos. 402 00:16:56,200 --> 00:16:59,159 El operador más no se va a mirar si echar o no. 403 00:16:59,840 --> 00:17:03,279 El operador más, como ve que ahí tienes números enteros, 404 00:17:03,799 --> 00:17:04,960 pues te hace la suma del número entero. 405 00:17:05,880 --> 00:17:06,079 ¿Vale? 406 00:17:06,119 --> 00:17:08,599 Entonces, el tema no es cómo lo guarda, 407 00:17:08,599 --> 00:17:09,539 lo guarda siempre igual, 408 00:17:09,740 --> 00:17:12,099 sino quién lo esté usando esa variable, 409 00:17:12,240 --> 00:17:13,339 la interpretación que hace. 410 00:17:13,640 --> 00:17:27,259 ¿Vale? Esta hace la interpretación natural, el operador más lo interpreta como número entero, entonces, bueno, son situaciones que según a uno se le van dando, pues va encontrando por qué es y solución. 411 00:17:27,259 --> 00:17:29,559 En este caso, por ejemplo, podríamos hacer esto. 412 00:17:31,299 --> 00:17:33,500 Y esto ya he ido recordando desde ya 413 00:17:33,500 --> 00:17:36,839 que el operador más 414 00:17:36,839 --> 00:17:39,319 es recordando desde ya 415 00:17:39,319 --> 00:17:43,680 que cuando en alguno de los dos lados 416 00:17:43,680 --> 00:17:45,960 tiene algo que es una cadena entre comillas dobles, 417 00:17:46,599 --> 00:17:48,119 el resultado final es una cadena 418 00:17:48,119 --> 00:17:49,779 que es la concatenación de las dos cosas. 419 00:17:50,359 --> 00:17:51,680 Y para hacer esa concatenación 420 00:17:51,680 --> 00:17:55,559 habrá forzado él convertir esto a texto. 421 00:17:55,559 --> 00:17:58,339 Entonces al forzarlo automáticamente le ha salido esto 422 00:17:58,339 --> 00:17:59,319 ¿Vale? 423 00:17:59,940 --> 00:18:02,140 Al forzarlo porque contiene eso en realidad 424 00:18:02,140 --> 00:18:04,099 Pero si no lo has concatenado 425 00:18:04,099 --> 00:18:06,180 El operador más hace la suma que son los números 426 00:18:06,180 --> 00:18:07,700 ¿Vale? 427 00:18:08,299 --> 00:18:10,420 Sería en el mismo caso 428 00:18:10,420 --> 00:18:13,789 El carácter de arriba 429 00:18:13,789 --> 00:18:15,450 El 38 es un símbolo 430 00:18:15,450 --> 00:18:16,970 Sí 431 00:18:16,970 --> 00:18:20,349 Debería 432 00:18:20,349 --> 00:18:24,349 Tú dices por ejemplo si yo no hago esta 433 00:18:24,349 --> 00:18:25,609 Yo quito esto 434 00:18:25,609 --> 00:18:28,009 claro, es decir, yo quito esto 435 00:18:28,009 --> 00:18:29,190 para que se quede esto de aquí 436 00:18:29,190 --> 00:18:31,509 ¿vale? y ahora hago la suma sin más 437 00:18:31,509 --> 00:18:33,150 ¿vale? 438 00:18:36,779 --> 00:18:38,819 ¿ves? es igual 439 00:18:38,819 --> 00:18:40,759 o sea, da igual, él 440 00:18:40,759 --> 00:18:42,740 siempre lo va a guardar como un número entero dentro 441 00:18:42,740 --> 00:18:44,920 pero la sentencia 442 00:18:44,920 --> 00:18:47,019 con la que trabaja va a funcionar 443 00:18:47,019 --> 00:18:48,839 de una manera o de otra, System.out siempre 444 00:18:48,839 --> 00:18:50,740 va a mirar qué tipo es 445 00:18:50,740 --> 00:18:52,900 y si es char, te mostrará el carácter 446 00:18:52,900 --> 00:18:54,819 imprimible, pero el 447 00:18:54,819 --> 00:18:56,519 operador más no va a mirar nada 448 00:18:56,519 --> 00:18:59,220 Va a ver que son números enteros y los suma 449 00:18:59,220 --> 00:19:03,779 Y se acabó 450 00:19:03,779 --> 00:19:05,279 Vale, entonces 451 00:19:05,279 --> 00:19:21,470 Vale, pues un carácter 452 00:19:21,470 --> 00:19:22,930 Llega hasta donde llega 453 00:19:22,930 --> 00:19:24,089 Que es 454 00:19:24,089 --> 00:19:26,690 Almacenar único carácter y ya 455 00:19:26,690 --> 00:19:31,170 Bueno, pues 456 00:19:31,170 --> 00:19:34,769 Vamos ya a acabar con variables 457 00:19:34,769 --> 00:19:36,250 La variable es boolean 458 00:19:36,250 --> 00:19:36,609 ¿Vale? 459 00:19:37,829 --> 00:19:38,470 Y ya que 460 00:19:38,470 --> 00:19:44,160 Bueno 461 00:19:44,160 --> 00:19:50,900 Ejemplo chido 462 00:19:50,900 --> 00:19:51,380 Venga 463 00:19:51,380 --> 00:19:53,579 Ya nos hacemos una clase 464 00:19:53,579 --> 00:19:55,920 Ejemplo boolean 465 00:19:55,920 --> 00:19:57,799 Si otro 466 00:19:57,799 --> 00:20:00,579 Nos rakanemos 467 00:20:00,579 --> 00:20:02,779 Y esta vez si que demarco esto 468 00:20:02,779 --> 00:20:03,799 Venga 469 00:20:03,799 --> 00:20:05,259 ¿Cómo se llama? ¿Cómo lo has llamado? 470 00:20:06,059 --> 00:20:07,039 Ejemplo Boolean. 471 00:20:07,359 --> 00:20:08,880 Perfecto. Ejemplo Boolean. 472 00:20:09,279 --> 00:20:10,680 ¿Cómo era de esperar? Dime. 473 00:20:14,420 --> 00:20:16,400 Que te sale un error en el... 474 00:20:16,400 --> 00:20:17,819 Venga, a ver. 475 00:20:19,740 --> 00:20:20,819 Venga, Boolean. 476 00:20:21,039 --> 00:20:25,839 Esa es la más antiintuitiva. 477 00:20:26,299 --> 00:20:29,240 El más antiintuitivo de todos los tipos de datos, 478 00:20:29,240 --> 00:20:32,180 pero el mejor y el más chulo. 479 00:20:32,180 --> 00:20:34,000 callaos 480 00:20:34,000 --> 00:20:36,720 vale 481 00:20:36,720 --> 00:20:39,420 ¿para qué utilizamos el tipo primitivo 482 00:20:39,420 --> 00:20:41,079 boolean? pues la forma 483 00:20:41,079 --> 00:20:42,839 más fácil de entenderlo es decir que 484 00:20:42,839 --> 00:20:44,619 lo usamos para guardar 485 00:20:44,619 --> 00:20:46,839 condiciones, en realidad, es la forma 486 00:20:46,839 --> 00:20:48,980 más fácil de entenderlo, porque ¿qué es 487 00:20:48,980 --> 00:20:49,740 una condición? 488 00:20:50,759 --> 00:20:53,400 algo que solo tiene dos posibilidades 489 00:20:53,400 --> 00:20:54,740 que se cumpla 490 00:20:54,740 --> 00:20:56,940 o que no se cumpla, no hay tutía 491 00:20:56,940 --> 00:20:59,019 una condición o la cumples o no 492 00:20:59,019 --> 00:21:00,799 la cumples, a medias no te puedes quedar 493 00:21:00,799 --> 00:21:01,660 ¿vale? 494 00:21:02,180 --> 00:21:08,720 Eso en la lógica de los lenguajes de programación y de las arquitecturas de programación convencionales. 495 00:21:09,619 --> 00:21:16,759 Luego está otra cosa, que es la lógica borrosa, por si a alguien le gusta la inteligencia artificial y todo eso. 496 00:21:16,759 --> 00:21:23,519 En la lógica borrosa, las cosas o sí o no, o un poquito, o mucho, o a medias. 497 00:21:24,319 --> 00:21:26,059 Pero esa es otro tipo de lógica. 498 00:21:26,059 --> 00:21:28,559 el álgebra de Boole de toda la vida 499 00:21:28,559 --> 00:21:30,400 y la lógica de los computadores es 500 00:21:30,400 --> 00:21:32,599 las condiciones o se cumplen 501 00:21:32,599 --> 00:21:34,119 o no se cumplen 502 00:21:34,119 --> 00:21:36,759 bueno, pues para guardar una condición 503 00:21:36,759 --> 00:21:38,619 que es algo que se usa muchísimo 504 00:21:38,619 --> 00:21:40,740 en un lenguaje de programación, las condiciones 505 00:21:40,740 --> 00:21:42,599 se habilita un tipo de dato 506 00:21:42,599 --> 00:21:44,799 que es el Boolean, y en el Boolean yo guardo 507 00:21:44,799 --> 00:21:45,660 una condición 508 00:21:45,660 --> 00:21:48,059 entonces es una idea extraña 509 00:21:48,059 --> 00:21:50,640 porque en un entero, en un float 510 00:21:50,640 --> 00:21:51,960 tú guardas un dato 511 00:21:51,960 --> 00:21:53,940 guardas un número, guardas un dato 512 00:21:53,940 --> 00:22:00,799 Y en un boolean guardas también un dato, pero un dato raro, porque ese dato es una condición, ¿vale? 513 00:22:02,619 --> 00:22:06,599 Entonces, una variable boolean, pues yo qué sé, la vamos a llamar de cualquier manera. 514 00:22:09,819 --> 00:22:13,339 Le voy a poner un nombrecito genérico para no olvidarnos de... 515 00:22:14,440 --> 00:22:18,339 Vale, pues esta variable boolean, ¿qué le asignamos? 516 00:22:18,339 --> 00:22:19,019 asignamos 517 00:22:19,019 --> 00:22:21,339 le asignamos 518 00:22:21,339 --> 00:22:24,559 algo que, o se puede, una condición 519 00:22:24,559 --> 00:22:26,559 algo que se puede cumplir o no se puede cumplir 520 00:22:26,559 --> 00:22:28,240 es decir, yo podría 521 00:22:28,240 --> 00:22:30,559 esto es una asignación perfectamente válida 522 00:22:30,559 --> 00:22:32,339 para una variable 523 00:22:32,339 --> 00:22:32,839 boolean 524 00:22:32,839 --> 00:22:36,680 porque esto es una condición 525 00:22:36,680 --> 00:22:38,099 3 mayor que 5 526 00:22:38,099 --> 00:22:40,440 entonces claro, tendremos que 527 00:22:40,440 --> 00:22:40,980 estudiar 528 00:22:40,980 --> 00:22:43,980 cómo hacer condiciones en Java 529 00:22:43,980 --> 00:22:46,119 porque esta condición es muy sencilla 530 00:22:46,119 --> 00:22:47,599 ser mayor que 531 00:22:47,599 --> 00:22:51,339 pero tenemos que poder expresar condiciones mucho más complejas 532 00:22:51,339 --> 00:22:55,119 igual que cuando hacemos expresiones 533 00:22:55,119 --> 00:22:56,680 para obtener números como 534 00:22:56,680 --> 00:22:59,079 sumar, multiplicar, ya he dicho 535 00:22:59,079 --> 00:23:01,119 que uno puede hacer una expresión muy compleja 536 00:23:01,119 --> 00:23:03,480 que involucre muchas sumas, multiplicaciones, divisiones 537 00:23:03,480 --> 00:23:05,539 patatín, que las involucre y el resultado sea un número 538 00:23:05,539 --> 00:23:08,920 pues también para hacer una condición 539 00:23:08,920 --> 00:23:10,559 uno puede involucrar un montón de cosas 540 00:23:10,559 --> 00:23:12,259 pero bueno, desde ya 541 00:23:12,259 --> 00:23:14,779 el ser mayor que, menor que 542 00:23:14,779 --> 00:23:16,579 mayor o igual que, o menor o igual que 543 00:23:16,579 --> 00:23:18,119 A todos nos suena de toda la vida 544 00:23:18,119 --> 00:23:19,680 Entonces desde ya 545 00:23:19,680 --> 00:23:22,299 Sin tener que meterse a ver en detalle 546 00:23:22,299 --> 00:23:23,019 Los operadores 547 00:23:23,019 --> 00:23:26,140 El símbolo de mayor que todo el mundo sabe lo que significa 548 00:23:26,140 --> 00:23:27,859 Y lo podemos usar para hacer condiciones 549 00:23:27,859 --> 00:23:30,420 Entonces esta es una asignación válida 550 00:23:30,420 --> 00:23:34,180 Y si nosotros 551 00:23:34,180 --> 00:23:35,299 Ahora 552 00:23:35,299 --> 00:23:37,039 Mostramos B 553 00:23:37,039 --> 00:23:39,440 Pues lógica, ¿qué nos sale? 554 00:23:39,559 --> 00:23:41,619 Pues nos sale el valor de esa condición 555 00:23:41,619 --> 00:23:43,619 Uy, perdón, sí 556 00:23:43,619 --> 00:23:45,480 Y el valor de esa condición es 557 00:23:45,480 --> 00:23:47,900 superfalse, vale 558 00:23:47,900 --> 00:23:50,039 entonces 559 00:23:50,039 --> 00:23:51,720 sin embargo 560 00:23:51,720 --> 00:23:52,779 si yo pongo 561 00:23:52,779 --> 00:23:54,640 esto 562 00:23:54,640 --> 00:23:57,559 y lo volvemos a ejecutar 563 00:23:57,559 --> 00:23:59,519 pues me sale esto de aquí 564 00:23:59,519 --> 00:24:02,160 entonces, false y true 565 00:24:02,160 --> 00:24:03,980 son dos palabras reservadas 566 00:24:03,980 --> 00:24:05,960 para java, hasta el punto 567 00:24:05,960 --> 00:24:07,380 de que las podemos usar también 568 00:24:07,380 --> 00:24:09,980 yo puedo asignar directamente una variable 569 00:24:09,980 --> 00:24:10,960 boolean este valor 570 00:24:10,960 --> 00:24:13,980 y esta variable boolean tiene 571 00:24:13,980 --> 00:24:14,440 true 572 00:24:14,440 --> 00:24:17,460 o puedo asignar a una variable boolean 573 00:24:17,460 --> 00:24:18,059 este valor 574 00:24:18,059 --> 00:24:20,819 y esta variable boolean tiene false 575 00:24:20,819 --> 00:24:23,420 entonces en última instancia 576 00:24:23,420 --> 00:24:24,559 las variables boolean 577 00:24:24,559 --> 00:24:27,140 solo tienen uno de estos dos valores en realidad 578 00:24:27,140 --> 00:24:29,460 true o false y son los únicos que pueden tener 579 00:24:29,460 --> 00:24:31,400 una variable boolean 580 00:24:31,400 --> 00:24:33,440 o tiene true o tiene false, no puede tener otra cosa 581 00:24:33,440 --> 00:24:35,160 esta de arriba 582 00:24:35,160 --> 00:24:37,319 ¿qué tiene? esta de arriba tiene true 583 00:24:37,319 --> 00:24:39,059 lo que pasa es que 584 00:24:39,059 --> 00:24:41,099 a ese true va a llegar 585 00:24:41,099 --> 00:24:42,500 evaluando una condición 586 00:24:42,500 --> 00:24:43,740 pero tiene true 587 00:24:43,740 --> 00:24:46,299 luego una variable boolean solo tiene 588 00:24:46,299 --> 00:24:47,559 true o false, uno de los dos 589 00:24:47,559 --> 00:24:50,140 ¿vale? o bien 590 00:24:50,140 --> 00:24:52,740 porque se lo he asignado directamente a capón 591 00:24:52,740 --> 00:24:54,779 o bien porque se lo he asignado 592 00:24:54,779 --> 00:24:55,779 a través de una condición 593 00:24:55,779 --> 00:24:59,759 ¿vale? 594 00:25:00,779 --> 00:25:02,619 y esa condición por supuesto 595 00:25:02,619 --> 00:25:04,019 puede involucrar variables 596 00:25:04,019 --> 00:25:06,819 imaginaos que yo tengo aquí una variable 597 00:25:06,819 --> 00:25:08,819 esta de aquí 598 00:25:08,819 --> 00:25:11,500 ¿vale? 599 00:25:14,630 --> 00:25:15,930 pues esto es 600 00:25:15,930 --> 00:25:18,089 una condición 601 00:25:18,089 --> 00:25:19,269 perfectamente válida. 602 00:25:19,890 --> 00:25:21,349 N mayor que 5. 603 00:25:22,289 --> 00:25:24,150 Entonces, la máquina virtual, cuando tenga que hacer 604 00:25:24,150 --> 00:25:26,289 esta asignación, ¿qué es lo primero 605 00:25:26,289 --> 00:25:27,930 que hace cuando hay que hacer una asignación? 606 00:25:28,230 --> 00:25:29,670 Recordad, lo primero que hace es 607 00:25:29,670 --> 00:25:32,089 evaluar lo que hay a la derecha. 608 00:25:32,569 --> 00:25:33,269 Se olvida 609 00:25:33,269 --> 00:25:36,089 de la variable de la izquierda por ahora 610 00:25:36,089 --> 00:25:38,289 y evalúa lo que hay a la derecha. 611 00:25:38,789 --> 00:25:39,990 Vale, para evaluarlo 612 00:25:39,990 --> 00:25:42,029 primero mira a ver si hay cosas 613 00:25:42,029 --> 00:25:42,849 que sean variables. 614 00:25:43,809 --> 00:25:46,230 Porque si son variables, tiene que ir a la cajita a ver qué tienen dentro. 615 00:25:46,230 --> 00:25:48,190 vale, ah, pues aquí se ha encontrado una 616 00:25:48,190 --> 00:25:50,130 n, pues lo primero que tiene que hacer 617 00:25:50,130 --> 00:25:51,710 es irse a la cajita de la n 618 00:25:51,710 --> 00:25:53,930 se va a la caja de la n y dice hay un 9 619 00:25:53,930 --> 00:25:55,390 muy bien, pues ahora ya 620 00:25:55,390 --> 00:25:57,190 construye la condición 621 00:25:57,190 --> 00:25:59,430 con los valores ya de las cajas 622 00:25:59,430 --> 00:26:00,529 los valores de las variables 623 00:26:00,529 --> 00:26:03,910 9 mayor que 5, eso que me da 624 00:26:03,910 --> 00:26:05,329 true, pues mete 625 00:26:05,329 --> 00:26:07,450 true en boolean 626 00:26:07,450 --> 00:26:09,630 y ya está, y cuando ejecutemos esto 627 00:26:09,630 --> 00:26:10,569 pues nos sale aquí el true 628 00:26:10,569 --> 00:26:13,930 que aquí hemos puesto 1 629 00:26:13,930 --> 00:26:15,750 pues la máquina virtual 630 00:26:15,750 --> 00:26:19,430 cuando ejecute este programa, primero se va a la expresión de la derecha 631 00:26:19,430 --> 00:26:23,329 como involucra cajitas, variables, lo siguiente que hace es 632 00:26:23,329 --> 00:26:27,529 me voy a ver el contenido de esas variables, se va, tiene un 1 633 00:26:27,529 --> 00:26:31,670 muy bien, lo sustituye, una vez sustituidas todas las variables 634 00:26:31,670 --> 00:26:35,509 evalúa la condición, 1 mayor que 5, falso 635 00:26:35,509 --> 00:26:39,470 cuando ya tiene el falso, asigna el falso a B, luego 636 00:26:39,470 --> 00:26:43,349 los boolean solamente tienen true o false, es lo único que pueden tener, lo que pasa es que 637 00:26:43,349 --> 00:26:45,390 esos true o false habrán llegado, en la mayoría 638 00:26:45,390 --> 00:26:47,769 de los casos, después de una evaluación 639 00:26:47,769 --> 00:26:48,529 de una condición. 640 00:26:49,250 --> 00:26:51,210 Se los puedo dar yo directamente, pero normalmente 641 00:26:51,210 --> 00:26:53,470 el sentido que tiene es contener 642 00:26:53,470 --> 00:26:54,089 condiciones. 643 00:26:55,549 --> 00:26:55,990 Dime. 644 00:26:56,250 --> 00:26:59,089 ¿Cómo se pone el mayor o igual? Porque imagino que se pone el 5 mayor o igual. 645 00:26:59,089 --> 00:27:00,769 Mayor o igual, así. 646 00:27:01,809 --> 00:27:02,250 Así. 647 00:27:03,289 --> 00:27:05,130 Y el menor o igual, cuando 648 00:27:05,130 --> 00:27:07,549 veamos todos los operadores 649 00:27:07,549 --> 00:27:09,470 ya en detalle para hacer expresiones, ya lo revisaremos 650 00:27:09,470 --> 00:27:11,009 todos. Y el menor o igual, así. 651 00:27:12,250 --> 00:27:13,230 Entonces, pero 652 00:27:13,230 --> 00:27:20,650 Pero de todas maneras ya, mayor que, menor que, mayor o igual o menor o igual, para hacer condiciones sencillas, ya los conocemos. 653 00:27:21,849 --> 00:27:25,529 Y el ser igual a, ¿ese cómo se pone? 654 00:27:26,230 --> 00:27:27,130 Se pone así. 655 00:27:29,170 --> 00:27:30,970 Se pone con dos iguales. ¿Por qué? 656 00:27:31,690 --> 00:27:34,650 Porque el igual simple tiene ya un uso, que es la asignación. 657 00:27:35,710 --> 00:27:42,329 Luego lo siento, pero ese no se puede usar para la condición. 658 00:27:43,230 --> 00:27:49,829 Entonces, esto es una expresión perfectamente válida que es n es igual a 5. 659 00:27:50,609 --> 00:27:53,789 ¿Eso puede ser true o false? En este caso es false porque n es 1. 660 00:27:54,730 --> 00:27:57,130 Y si lo ejecutamos, pues ala, obviamente es false. 661 00:27:58,089 --> 00:28:06,190 Si yo aquí le pongo el 5 y ejecutamos esto, es true, claro, como era de esperar. 662 00:28:11,150 --> 00:28:12,430 Bueno, esta es la... 663 00:28:12,430 --> 00:28:16,690 la idea 664 00:28:16,690 --> 00:28:18,470 de las variables Boolean 665 00:28:18,470 --> 00:28:20,150 a falta ya 666 00:28:20,150 --> 00:28:21,769 de ver 667 00:28:21,769 --> 00:28:24,430 cómo hacer condiciones más complejas 668 00:28:24,430 --> 00:28:26,210 igual que estamos a falta de ver cómo hacer 669 00:28:26,210 --> 00:28:28,509 expresiones más complejas para obtener números 670 00:28:28,509 --> 00:28:30,869 que sabemos sumar, multiplicar 671 00:28:30,869 --> 00:28:33,029 dividir 672 00:28:33,029 --> 00:28:34,670 y restar 673 00:28:34,670 --> 00:28:36,150 y el porciento, no sabemos más 674 00:28:36,150 --> 00:28:38,609 pues a falta de conocer más operadores 675 00:28:38,609 --> 00:28:40,329 para hacer expresiones matemáticas 676 00:28:40,329 --> 00:28:43,170 también estamos a falta de más operadores 677 00:28:43,170 --> 00:28:44,650 para hacer condiciones más complejas 678 00:28:44,650 --> 00:28:46,470 ¿vale? 679 00:28:47,170 --> 00:28:49,150 pero lo que es una variable boolean 680 00:28:49,150 --> 00:28:49,990 pues ya lo tenemos 681 00:28:49,990 --> 00:28:52,490 entonces esto 682 00:28:52,490 --> 00:28:54,049 ahora ya nos permite 683 00:28:54,049 --> 00:28:57,250 ya meternos en el mundo de 684 00:28:57,250 --> 00:29:02,480 complicar un pelín 685 00:29:02,480 --> 00:29:03,339 no complicar 686 00:29:03,339 --> 00:29:06,240 sino ver cómo podemos hacer asignaciones 687 00:29:06,240 --> 00:29:09,000 que hagan cosas un pelín más sofisticadas 688 00:29:09,000 --> 00:29:10,839 dentro de que sean asignaciones 689 00:29:10,839 --> 00:29:11,859 ¿vale? 690 00:29:14,430 --> 00:29:23,990 Lo que sí que tenemos claro todos llegados a este punto es que una asignación es algo que tiene este aspecto. 691 00:29:24,309 --> 00:29:34,829 Nombre de la variable que sea igual y aquí una expresión cuyo tipo sea compatible a este de aquí. 692 00:29:35,970 --> 00:29:41,769 Entonces, matices, que la variable tiene que estar declarada, eso lo tenemos clarísimo, que la variable tiene que estar declarada. 693 00:29:41,769 --> 00:30:00,890 Y segundo, que el resultado de la expresión que yo ponga aquí, el tipo resultante tiene que ser igual al del tipo declarado. Salvo los matices de la promoción automática que ya hemos visto. Es decir, si esto es un int y lo guardo en un long, no pasa nada, ¿vale? Porque lo promociona. 694 00:30:00,890 --> 00:30:02,549 si esto es un float 695 00:30:02,549 --> 00:30:04,730 y lo guarda en un dabble, no pasa nada 696 00:30:04,730 --> 00:30:05,730 porque lo promociona 697 00:30:05,730 --> 00:30:07,410 si esto es un byte 698 00:30:07,410 --> 00:30:10,490 y lo guarda en un 699 00:30:10,490 --> 00:30:12,430 short, no pasa nada 700 00:30:12,430 --> 00:30:14,309 porque lo promociona, entonces salvo 701 00:30:14,309 --> 00:30:16,650 esos casos concretos 702 00:30:16,650 --> 00:30:18,470 de la promoción automática que hemos visto 703 00:30:18,470 --> 00:30:20,930 de tipos enteros, de menos tamaño 704 00:30:20,930 --> 00:30:22,690 a más, y en reales 705 00:30:22,690 --> 00:30:24,390 de float a dabble, salvo esos casos 706 00:30:24,390 --> 00:30:25,589 que lo promocionan automáticamente 707 00:30:25,589 --> 00:30:27,170 siempre 708 00:30:27,170 --> 00:30:30,849 no, no, no, de int a dabble 709 00:30:30,849 --> 00:30:32,390 no, de int a dabel ningún caso 710 00:30:32,390 --> 00:30:33,869 aunque sea 1.0 711 00:30:33,869 --> 00:30:36,789 no, no, de int a dabel sí 712 00:30:36,789 --> 00:30:38,549 porque le pone el punto, sí, sí, sí, sí 713 00:30:38,549 --> 00:30:40,609 claro, sí, creía que estaba diciendo de dabel a int 714 00:30:40,609 --> 00:30:42,509 vale, vale, no, de int a dabel también 715 00:30:42,509 --> 00:30:44,769 es otro ejemplo efectivamente de promoción automática 716 00:30:44,769 --> 00:30:46,630 claro, si lo vimos el otro día 717 00:30:46,630 --> 00:30:49,210 claro, lo vimos el otro día 718 00:30:49,210 --> 00:30:50,930 que a un dabel le puedes asignar un int 719 00:30:50,930 --> 00:30:52,730 porque el punto cero no quita información 720 00:30:52,730 --> 00:30:54,869 ese es otro ejemplo efectivamente de promoción 721 00:30:54,869 --> 00:30:55,890 automática en el cual 722 00:30:55,890 --> 00:30:58,769 el tipo de dato de aquí, aunque no sea 723 00:30:58,769 --> 00:31:00,369 idéntico, vale 724 00:31:00,369 --> 00:31:02,710 si es de int a double 725 00:31:02,710 --> 00:31:04,549 o de short a double o de byte a double 726 00:31:04,549 --> 00:31:06,650 me da igual, o sea, de entero a double en general 727 00:31:06,650 --> 00:31:08,430 de entero a double, o a float incluso 728 00:31:08,430 --> 00:31:09,970 también, al revés no 729 00:31:09,970 --> 00:31:12,250 de double o float 730 00:31:12,250 --> 00:31:14,509 a int long, tampoco, ahí no 731 00:31:14,509 --> 00:31:16,930 ahí no 732 00:31:16,930 --> 00:31:18,470 habría que hacer algo para quitar 733 00:31:18,470 --> 00:31:20,809 lo que fuera un casting, lo que fuera que ya veremos 734 00:31:20,809 --> 00:31:22,309 ¿vale? bueno, pero salvo 735 00:31:22,309 --> 00:31:24,430 esos casos que hemos recogido ahora ya así 736 00:31:24,430 --> 00:31:26,369 todos, en las asignaciones 737 00:31:26,369 --> 00:31:28,329 en general, ya sabemos cómo funcionan 738 00:31:28,329 --> 00:31:30,930 eso tiene que ser el mismo tipo de la variable declarada 739 00:31:30,930 --> 00:31:32,230 y esto será 740 00:31:32,230 --> 00:31:33,789 una expresión 741 00:31:33,789 --> 00:31:36,750 una expresión que involucra variables, números, lo que sea 742 00:31:36,750 --> 00:31:38,450 y ya está, uno la evalúa y le da el tipo 743 00:31:38,450 --> 00:31:38,829 bueno 744 00:31:38,829 --> 00:31:42,390 pues ahora que ya hemos introducido 745 00:31:42,390 --> 00:31:43,190 las condiciones 746 00:31:43,190 --> 00:31:46,410 y podemos ver una variante 747 00:31:46,410 --> 00:31:47,569 de las asignaciones 748 00:31:47,569 --> 00:31:49,829 interesante y útil 749 00:31:49,829 --> 00:32:05,089 que es la asignación 750 00:32:05,089 --> 00:32:06,670 condicionada 751 00:32:06,670 --> 00:32:11,980 ya conocemos asignaciones, conocemos condiciones 752 00:32:11,980 --> 00:32:14,200 Pues la asignación condicionada 753 00:32:14,200 --> 00:32:17,359 ¿Qué significa lo siguiente? 754 00:32:19,519 --> 00:32:20,740 La sintaxis es esta 755 00:32:20,740 --> 00:32:23,539 Yo tengo una variable, por ejemplo, esta 756 00:32:23,539 --> 00:32:24,839 Y le voy a asignar un valor 757 00:32:24,839 --> 00:32:28,039 Vale, pues entonces 758 00:32:28,039 --> 00:32:31,279 Aquí puedo elegir entre dos posibilidades 759 00:32:31,279 --> 00:32:34,480 Le quiero asignar este o este 760 00:32:34,480 --> 00:32:36,059 En función de una condición 761 00:32:36,059 --> 00:32:39,640 Puede ser una situación que queramos a veces 762 00:32:39,640 --> 00:32:40,940 Yo quiero hacer una asignación 763 00:32:40,940 --> 00:32:42,980 pero esta asignación le quiero dar 764 00:32:42,980 --> 00:32:44,759 o este valor o le quiero dar 765 00:32:44,759 --> 00:32:46,720 este otro y le doy este 766 00:32:46,720 --> 00:32:49,299 en función de si una condición es verdad o mentira 767 00:32:49,299 --> 00:32:50,299 ¿vale? 768 00:32:50,700 --> 00:32:53,079 por eso lo podemos reflejar en una sentencia 769 00:32:53,079 --> 00:32:54,960 de asignación ¿y cómo lo haríamos? 770 00:32:55,519 --> 00:32:57,180 pues entre paréntesis ponemos 771 00:32:57,180 --> 00:32:58,160 ahora lo completamos 772 00:32:58,160 --> 00:33:01,180 la condición en función 773 00:33:01,180 --> 00:33:02,660 de la cual asigne una cosa u otra 774 00:33:02,660 --> 00:33:04,660 y luego pongo una interrogación 775 00:33:04,660 --> 00:33:06,339 y ahora pongo aquí 776 00:33:06,339 --> 00:33:09,619 el primer valor que es el que asignaría 777 00:33:09,619 --> 00:33:11,059 si la condición es true 778 00:33:11,059 --> 00:33:13,339 luego pongo dos puntos 779 00:33:13,339 --> 00:33:15,880 y luego el segundo valor 780 00:33:15,880 --> 00:33:18,079 que asignaría si la condición 781 00:33:18,079 --> 00:33:20,059 es falsa, lo pongo en comentarios 782 00:33:20,059 --> 00:33:21,279 para, vale 783 00:33:21,279 --> 00:33:26,119 vale, pues esta es la asignación condicionada 784 00:33:26,119 --> 00:33:26,680 que se llama 785 00:33:26,680 --> 00:33:29,920 entonces es una asignación porque a n 786 00:33:29,920 --> 00:33:31,819 se le asigna un valor que es 787 00:33:31,819 --> 00:33:34,059 o este o este, uno de los dos 788 00:33:34,059 --> 00:33:36,200 uno de los dos, ¿de qué depende 789 00:33:36,200 --> 00:33:37,140 asignar uno u otro? 790 00:33:37,819 --> 00:33:39,200 del valor de esta condición 791 00:33:39,200 --> 00:33:41,279 ¿vale? 792 00:33:41,640 --> 00:33:56,680 Por ejemplo, vamos a imaginar, ejemplo, vamos a hacer un código en el cual pedimos una edad 793 00:33:56,680 --> 00:34:05,559 y en función de si es de una persona y en función de si es mayor de edad o es menor de edad, 794 00:34:05,559 --> 00:34:10,300 pues poner una variable, la S o la N, para decir si es mayor o no es menor de edad. 795 00:34:10,300 --> 00:34:37,030 Pues venga, solicitar edad e indicar en una variable char si es mayor de edad o no, indicándolo poniendo pues el carácter S o el carácter N, ¿vale? 796 00:34:39,829 --> 00:34:45,510 Venga, pues entonces, pues sí, típico examen sorpresa que podría haber puesto dentro de 10 minutos. 797 00:34:46,090 --> 00:34:48,690 como vamos a leer por teclado, escáner 798 00:34:48,690 --> 00:35:00,010 importamos 799 00:35:00,010 --> 00:35:03,989 es decir, este import 800 00:35:03,989 --> 00:35:05,610 cuidado, que tiene que estar arriba 801 00:35:05,610 --> 00:35:07,130 detrás de la línea de package 802 00:35:07,130 --> 00:35:07,730 ahí 803 00:35:07,730 --> 00:35:10,789 ahora que ya hemos importado 804 00:35:10,789 --> 00:35:13,690 vamos a leer un numerito 805 00:35:13,690 --> 00:35:16,030 entero, que es una edad 806 00:35:16,030 --> 00:35:17,789 venga, lo guardamos en la variable 807 00:35:17,789 --> 00:35:19,289 edad, bueno 808 00:35:19,289 --> 00:35:21,789 lo he llamado scan en vez de lector porque me ha salido 809 00:35:21,789 --> 00:35:23,809 así sobre la marcha, da igual, porque ese nombre 810 00:35:23,809 --> 00:35:24,510 lo elige uno 811 00:35:24,510 --> 00:35:29,429 Venga, pues scan.nextint 812 00:35:29,429 --> 00:35:31,929 Así leíamos por teclado, ¿verdad? 813 00:35:31,969 --> 00:35:36,170 Para que la aplicación no se quede así como muy misteriosa 814 00:35:36,170 --> 00:35:48,320 Vamos a poner introduzca edad 815 00:35:48,320 --> 00:35:48,880 Vale 816 00:35:48,880 --> 00:35:52,539 Y ahora, la edad ya está leída 817 00:35:52,539 --> 00:35:56,099 De la manera en la que leíamos números enteros 818 00:35:56,099 --> 00:35:57,000 Números íntegros 819 00:35:57,000 --> 00:35:57,900 Lo leíamos así 820 00:35:57,900 --> 00:36:00,539 Con este objeto que declarábamos de esta manera 821 00:36:00,539 --> 00:36:03,960 Bueno, pues ahora 822 00:36:03,960 --> 00:36:05,019 ¿Qué hacemos con edad? 823 00:36:06,739 --> 00:36:08,420 Nuestro resultado de nuestro programa 824 00:36:08,420 --> 00:36:09,500 Tiene que ser una variable char 825 00:36:09,500 --> 00:36:13,789 ¿Y esa variable char 826 00:36:13,789 --> 00:36:15,730 ¿Qué le vamos a asignar? 827 00:36:16,869 --> 00:36:17,809 Pues depende 828 00:36:17,809 --> 00:36:19,690 Una S 829 00:36:19,690 --> 00:36:21,849 O una N, no sabemos 830 00:36:21,849 --> 00:36:24,309 O le asignamos S o le asignamos S 831 00:36:24,309 --> 00:36:25,530 N, perdón 832 00:36:25,530 --> 00:36:28,050 O S o N, no sabemos cuál de los dos 833 00:36:28,050 --> 00:36:29,730 Le vamos a asignar, no lo sabemos 834 00:36:29,730 --> 00:36:32,369 Pero sí sabemos que asignamos S 835 00:36:32,369 --> 00:36:34,269 si edad es mayor o igual de 18 836 00:36:34,269 --> 00:36:36,750 y si sabemos que asignamos n 837 00:36:36,750 --> 00:36:38,130 si edad es mayor o igual que 18 838 00:36:38,130 --> 00:36:40,889 luego maravilloso porque ya hemos identificado 839 00:36:40,889 --> 00:36:43,869 que en función de 840 00:36:43,869 --> 00:36:45,530 que condición 841 00:36:45,530 --> 00:36:47,269 edad mayor o igual que 18 842 00:36:47,269 --> 00:36:48,590 o esta o esta 843 00:36:48,590 --> 00:36:51,489 pues podemos ponerlo así 844 00:36:51,489 --> 00:36:56,570 que edad es mayor o igual que 18 845 00:36:56,570 --> 00:36:57,489 pongo la condición 846 00:36:57,489 --> 00:37:00,539 asignale s 847 00:37:00,539 --> 00:37:02,619 y si no, asignale n 848 00:37:02,619 --> 00:37:04,260 ¿vale? 849 00:37:04,260 --> 00:37:07,599 Entonces esta es una asignación condicionada 850 00:37:07,599 --> 00:37:09,960 O le asignas S o le asignas N 851 00:37:09,960 --> 00:37:12,840 En función de si edad es mayor o igual que el 18 852 00:37:12,840 --> 00:37:16,030 Y si mostramos 853 00:37:16,030 --> 00:37:19,070 El resultado del programa 854 00:37:19,070 --> 00:37:21,690 Para ver si la asignación lo ha hecho bien 855 00:37:21,690 --> 00:37:23,510 Pues supone que va a dar bien 856 00:37:23,510 --> 00:37:27,179 ¿Vale? 857 00:37:28,019 --> 00:37:29,300 Entonces ejecutamos 858 00:37:29,300 --> 00:37:30,719 Introduzca edad 859 00:37:30,719 --> 00:37:32,880 65, pues sí 860 00:37:32,880 --> 00:37:34,079 Es mayor que edad 861 00:37:34,079 --> 00:37:37,340 Has llegado un poco tarde porque me temo que os voy a echar 862 00:37:37,340 --> 00:37:42,269 si lo vamos a ejecutar 863 00:37:42,269 --> 00:37:43,710 introduzca edad 864 00:37:43,710 --> 00:37:45,969 12, pues no 865 00:37:45,969 --> 00:37:47,250 vale 866 00:37:47,250 --> 00:37:50,670 vale, pues este 867 00:37:50,670 --> 00:37:54,710 este operador es muy útil 868 00:37:54,710 --> 00:37:56,469 desde ya, sin tener 869 00:37:56,469 --> 00:37:58,929 conocimientos de la famosa sentencia de decisión 870 00:37:58,929 --> 00:38:00,250 if, sin eso 871 00:38:00,250 --> 00:38:02,489 nos permite ya hacer bastantes cosas 872 00:38:02,489 --> 00:38:03,909 interesantes en 873 00:38:03,909 --> 00:38:05,130 en código 874 00:38:05,130 --> 00:38:07,750 pues si lo has escrito tal cual 875 00:38:07,750 --> 00:38:08,630 no debería 876 00:38:08,630 --> 00:38:13,440 Vale, bueno 877 00:38:13,440 --> 00:38:15,599 Y entonces ahora ya sí que os voy a decir que os vayáis a casa 878 00:38:15,599 --> 00:38:18,059 Para mañana ya 879 00:38:18,059 --> 00:38:20,079 A ver si venimos un poquito más 880 00:38:20,079 --> 00:38:20,940 Porque 881 00:38:20,940 --> 00:38:27,550 Me duele mucho la garganta 882 00:38:27,550 --> 00:38:28,710 Y no voy a poder 883 00:38:28,710 --> 00:39:00,909 Pues es así de delicado y más 884 00:39:00,909 --> 00:39:03,150 Uh, no había parado esto 885 00:39:03,150 --> 00:39:04,269 Gracias por ver el video.