1 00:00:01,970 --> 00:00:15,130 Bueno, pues a ver, nosotros hemos visto entonces ya cómo declarar variables, las variables son, cómo declarar variables, 2 00:00:16,870 --> 00:00:26,730 sabiendo ya, como sabemos, que las variables son elementos imprescindibles de cualquier aplicación, de cualquier programa, imprescindibles porque reciben los datos. 3 00:00:26,730 --> 00:00:29,269 Un programa que no tiene variables 4 00:00:29,269 --> 00:00:32,350 Lo único que podría hacer sería mostrar por consola cosas 5 00:00:32,350 --> 00:00:35,170 Mostrar hola, mostrar tres, mostrar por consola cosas 6 00:00:35,170 --> 00:00:36,969 Pero no podría hacer nada 7 00:00:36,969 --> 00:00:38,189 ¿Vale? 8 00:00:38,210 --> 00:00:41,950 Entonces las variables ya sabemos que son los elementos imprescindibles 9 00:00:41,950 --> 00:00:43,469 En cualquier programa 10 00:00:43,469 --> 00:00:46,890 Porque son las cajas que reciben los datos para operar 11 00:00:46,890 --> 00:00:50,009 Y ahora ya un programa que hace 12 00:00:50,009 --> 00:00:51,490 Operar con datos 13 00:00:51,490 --> 00:00:53,329 Eso siempre, en cualquier contexto 14 00:00:53,329 --> 00:00:54,310 Operar con datos 15 00:00:54,310 --> 00:00:56,369 Que previamente ha guardado en variables 16 00:00:56,369 --> 00:00:58,189 ¿vale? eso es lo que hace cualquier programa 17 00:00:58,189 --> 00:00:58,950 operar con datos 18 00:00:58,950 --> 00:01:02,149 bueno, pues entonces esas variables 19 00:01:02,149 --> 00:01:03,810 por tanto reciben los datos 20 00:01:03,810 --> 00:01:05,069 de la aplicación 21 00:01:05,069 --> 00:01:08,329 y además esas variables 22 00:01:08,329 --> 00:01:09,790 van cambiando su valor 23 00:01:09,790 --> 00:01:12,310 de ahí el nombre variables según las diferentes 24 00:01:12,310 --> 00:01:13,489 asignaciones 25 00:01:13,489 --> 00:01:16,329 les van dando diferentes expresiones 26 00:01:16,329 --> 00:01:18,170 pues ahora yo quiero que esta tenga la suma 27 00:01:18,170 --> 00:01:19,209 de las dos anteriores 28 00:01:19,209 --> 00:01:20,870 pues ahora yo quiero no sé qué 29 00:01:20,870 --> 00:01:23,930 entonces eso nos llevó a ver la 30 00:01:23,930 --> 00:01:25,969 sentencia de asignación que tenemos clarísimo 31 00:01:25,969 --> 00:01:34,189 como es, nombre de variable a la izquierda y a la derecha valor que yo asigno, ese valor 32 00:01:34,189 --> 00:01:40,489 o un valor tal cual o una expresión y entonces a esa variable irá el resultado de esa expresión, 33 00:01:41,250 --> 00:01:49,780 ¿vale? Por ejemplo, esto es una expresión porque son dos elementos combinados por un 34 00:01:49,780 --> 00:01:51,739 operador, eso es una expresión 35 00:01:51,739 --> 00:01:52,760 vale 36 00:01:52,760 --> 00:01:55,400 a mayor de edad 37 00:01:55,400 --> 00:02:03,120 le podíamos haber 38 00:02:03,120 --> 00:02:05,000 asignado esto, que sería 39 00:02:05,000 --> 00:02:06,859 un valor a capón directamente, true 40 00:02:06,859 --> 00:02:09,219 vale, entonces repito, le podemos asignar 41 00:02:09,219 --> 00:02:11,039 a cualquier variable un valor 42 00:02:11,039 --> 00:02:11,800 directamente 43 00:02:11,800 --> 00:02:15,099 aquí, o le podemos 44 00:02:15,099 --> 00:02:17,139 asignar algo resultado 45 00:02:17,139 --> 00:02:17,939 de una expresión 46 00:02:17,939 --> 00:02:23,879 entonces a una variable le asignamos 47 00:02:23,879 --> 00:02:25,800 o valores directamente o expresiones 48 00:02:25,800 --> 00:02:31,879 O entendiendo también por valores directamente el resultado de leer por teclado 49 00:02:31,879 --> 00:02:38,680 Yo aquí le estoy dando el 4, pero le podría estar dando el resultado de leer por teclado también un entero 50 00:02:38,680 --> 00:02:42,400 Entonces, así también le estoy dando un valor directamente 51 00:02:42,400 --> 00:02:47,659 Le estoy dando el 7, el 12, el 14, el que sea, le estoy dando un valor directamente 52 00:02:47,659 --> 00:02:55,360 Lo que pasa es que ese valor, en lugar de ponérselo yo por programa, ese valor llega a través del teclado 53 00:02:55,360 --> 00:02:59,240 ¿vale? está claro ¿no? 54 00:02:59,360 --> 00:03:01,520 entonces en una variable de asignación 55 00:03:01,520 --> 00:03:03,400 podemos siempre asignarle 56 00:03:03,400 --> 00:03:05,240 un valor directamente 57 00:03:05,240 --> 00:03:07,280 por teclado o porque yo lo ponga por 58 00:03:07,280 --> 00:03:09,759 programa que se llama o el resultado de una expresión 59 00:03:09,759 --> 00:03:11,460 y las 60 00:03:11,460 --> 00:03:13,479 expresiones que construyamos pues tienen 61 00:03:13,479 --> 00:03:14,939 que ser expresiones obviamente 62 00:03:14,939 --> 00:03:16,740 que hagan lo que nuestro programa 63 00:03:16,740 --> 00:03:17,680 pide 64 00:03:17,680 --> 00:03:21,259 vale pues entonces para poder 65 00:03:21,259 --> 00:03:23,400 hacer ya expresiones que se 66 00:03:23,400 --> 00:03:25,439 adapten a lo que nuestro programa va 67 00:03:25,439 --> 00:03:25,979 pidiendo 68 00:03:25,979 --> 00:03:28,419 tenemos que conocer ya un poquito más 69 00:03:28,419 --> 00:03:30,479 de qué operadores 70 00:03:30,479 --> 00:03:32,560 disponemos en Java, entendiendo por 71 00:03:32,560 --> 00:03:34,740 operadores, pues los símbolos 72 00:03:34,740 --> 00:03:36,740 que permiten construir expresiones 73 00:03:36,740 --> 00:03:38,520 ¿no? el más es un operador 74 00:03:38,520 --> 00:03:39,620 operador suma 75 00:03:39,620 --> 00:03:42,599 este es otro operador, operador división 76 00:03:42,599 --> 00:03:44,400 entonces tenemos que 77 00:03:44,400 --> 00:03:46,560 conocer algunos más de los que tiene Java 78 00:03:46,560 --> 00:03:48,919 hasta ahora, ¿qué operadores 79 00:03:48,919 --> 00:03:50,340 con qué operadores hemos 80 00:03:50,340 --> 00:03:52,300 trabajado sin prácticamente explicar nada 81 00:03:52,300 --> 00:03:53,020 porque no hacía falta? 82 00:03:53,020 --> 00:03:56,020 Claro, hemos trabajado hasta ahora 83 00:03:56,020 --> 00:03:57,819 Con los algebraicos 84 00:03:57,819 --> 00:03:59,759 O aritméticos 85 00:03:59,759 --> 00:04:04,729 ¿Vale? Hemos trabajado 86 00:04:04,729 --> 00:04:06,409 Pues con la suma 87 00:04:06,409 --> 00:04:08,289 La resta 88 00:04:08,289 --> 00:04:10,750 La multiplicación 89 00:04:10,750 --> 00:04:13,229 La división 90 00:04:13,229 --> 00:04:15,349 Y el porcentaje 91 00:04:15,349 --> 00:04:17,290 Entonces todos sabemos 92 00:04:17,290 --> 00:04:19,389 El porcentaje 93 00:04:19,389 --> 00:04:20,649 El porcentaje es el resto 94 00:04:20,649 --> 00:04:22,949 O sea, lo he llamado porcentaje porque el símbolo 95 00:04:22,949 --> 00:04:25,149 Pero no calcula el porcentaje, calcula el resto 96 00:04:25,149 --> 00:04:27,089 El resto, el resto de la división, ¿vale? 97 00:04:27,290 --> 00:04:32,029 Entonces hemos mencionado estos cinco como operadores aritméticos, ¿vale? 98 00:04:32,790 --> 00:04:35,050 Este hace la suma entre lo que tiene a los lados, 99 00:04:35,870 --> 00:04:40,569 este hace la resta del segundo, que es el sustraendo, 100 00:04:40,670 --> 00:04:42,170 se lo quita el primero, que es el minuendo, 101 00:04:42,689 --> 00:04:43,990 este hace la multiplicación, 102 00:04:45,170 --> 00:04:48,910 este hace la división con o sin decimales, 103 00:04:49,069 --> 00:04:53,790 en función de si los operadores con los que trabaja son enteros o decimales, 104 00:04:53,790 --> 00:04:57,209 Y este calcula el resto de la división entera 105 00:04:57,209 --> 00:05:00,149 Entonces este tiene sentido ponerlo entre dos números enteros 106 00:05:00,149 --> 00:05:01,949 Para calcular el resto de la división entera 107 00:05:01,949 --> 00:05:03,629 ¿Vale? 108 00:05:04,730 --> 00:05:06,410 Entonces recordad que estos operadores 109 00:05:06,410 --> 00:05:08,550 Algunos tenían matices 110 00:05:08,550 --> 00:05:11,430 El más tenía el matiz 111 00:05:11,430 --> 00:05:15,269 Que si lo que tenía en alguno de los dos lados 112 00:05:15,269 --> 00:05:17,730 Era una cadena entrecomillada 113 00:05:17,730 --> 00:05:19,829 Se interpreta como concatenar 114 00:05:19,829 --> 00:05:22,089 Entonces si lo que tiene al otro lado es un número 115 00:05:22,089 --> 00:05:23,850 pues lo que hace es concatenar 116 00:05:23,850 --> 00:05:26,430 la grafía del número con el este 117 00:05:26,430 --> 00:05:27,750 ¿vale? 118 00:05:28,529 --> 00:05:29,250 y 119 00:05:29,250 --> 00:05:31,410 y luego además 120 00:05:31,410 --> 00:05:33,290 todos tenían 121 00:05:33,290 --> 00:05:35,670 incluían de alguna manera 122 00:05:35,670 --> 00:05:37,649 la posibilidad de 123 00:05:37,649 --> 00:05:40,430 tener que hacer promoción automática 124 00:05:40,430 --> 00:05:42,269 entre operandos 125 00:05:42,269 --> 00:05:44,370 con los que trabajaba si eran de diferente tipo 126 00:05:44,370 --> 00:05:45,629 eso todos ¿no? 127 00:05:46,389 --> 00:05:48,529 si os recordáis, si yo sumo 128 00:05:48,529 --> 00:05:49,990 un entero y un decimal 129 00:05:49,990 --> 00:05:52,370 el entero promociona decimal 130 00:05:52,370 --> 00:05:53,649 poniéndolo en punto cero 131 00:05:53,649 --> 00:05:56,709 y la suma es decimal 132 00:05:56,709 --> 00:05:58,230 entonces siempre se promociona 133 00:05:58,230 --> 00:06:00,029 si hay dos valores de diferente tipo 134 00:06:00,029 --> 00:06:02,350 el operador lo que hace es 135 00:06:02,350 --> 00:06:04,250 coger el que puede 136 00:06:04,250 --> 00:06:06,209 promocionar sin perder información y lo 137 00:06:06,209 --> 00:06:07,629 promociona y el resultado 138 00:06:07,629 --> 00:06:10,509 lo devuelve del tipo más alto 139 00:06:10,509 --> 00:06:12,209 ¿no? entonces pues eso 140 00:06:12,209 --> 00:06:14,370 si aquí tenemos un double y un int 141 00:06:14,370 --> 00:06:16,069 pues el int lo promociona double 142 00:06:16,069 --> 00:06:16,930 y el resultado en double 143 00:06:16,930 --> 00:06:19,029 Ahora ya otro tema es ese resultado 144 00:06:19,029 --> 00:06:20,389 En qué tipo de variable lo guardamos 145 00:06:20,389 --> 00:06:21,870 Si lo guardamos en double, maravilloso 146 00:06:21,870 --> 00:06:24,410 Si lo guardamos en int, ya el compilador va a decir 147 00:06:24,410 --> 00:06:26,750 No, el resultado de esta suma es double, no lo puedes guardar en int 148 00:06:26,750 --> 00:06:27,889 A menos que hagas otra cosa 149 00:06:27,889 --> 00:06:29,529 Que ya veremos 150 00:06:29,529 --> 00:06:31,069 Y el resto de operadores igual 151 00:06:31,069 --> 00:06:33,529 Si mezclan decimales y enteros 152 00:06:33,529 --> 00:06:36,850 Si mezclan decimales y enteros 153 00:06:36,850 --> 00:06:38,250 El entero lo promociona a decimal 154 00:06:38,250 --> 00:06:39,329 ¿Vale? 155 00:06:40,029 --> 00:06:42,250 Bueno, esos son los operadores aritméticos 156 00:06:42,250 --> 00:06:44,569 Que hemos visto y que no tenemos tampoco 157 00:06:44,569 --> 00:06:46,370 Mucho más que decir sobre ellos 158 00:06:46,370 --> 00:06:47,889 Porque son a los que estamos acostumbrados 159 00:06:47,889 --> 00:06:49,930 Vale, y también hemos 160 00:06:49,930 --> 00:06:52,930 Cuando hemos visto las variables boolean 161 00:06:52,930 --> 00:06:54,910 Pues ya hemos mencionado operadores 162 00:06:54,910 --> 00:06:56,529 Que nos son también conocidos 163 00:06:56,529 --> 00:06:57,810 Y naturales de toda la vida 164 00:06:57,810 --> 00:06:58,790 ¿Vale? 165 00:06:59,449 --> 00:07:01,769 Los operadores de comparación 166 00:07:01,769 --> 00:07:06,800 Los operadores de comparación 167 00:07:06,800 --> 00:07:07,959 Pues el menor que 168 00:07:07,959 --> 00:07:09,759 Mayor que 169 00:07:09,759 --> 00:07:12,120 ¿No? 170 00:07:12,660 --> 00:07:17,829 El menor o igual 171 00:07:17,829 --> 00:07:22,069 Mayor o igual 172 00:07:22,069 --> 00:07:24,509 Y el igual que 173 00:07:24,509 --> 00:07:27,209 ¿Vale? 174 00:07:27,410 --> 00:07:28,569 Y el igual que 175 00:07:28,569 --> 00:07:29,930 Entonces estos operadores 176 00:07:29,930 --> 00:07:31,589 Como no son naturales 177 00:07:31,589 --> 00:07:32,790 Los hemos usado en matemáticas 178 00:07:32,790 --> 00:07:33,569 De toda la vida 179 00:07:33,569 --> 00:07:35,449 Pues los hemos introducido 180 00:07:35,449 --> 00:07:36,170 Desde el principio 181 00:07:36,170 --> 00:07:37,689 Para 182 00:07:37,689 --> 00:07:41,449 Poner expresiones 183 00:07:41,449 --> 00:07:43,750 No sé que había aquí 184 00:07:43,750 --> 00:07:44,550 Imagino que habría 185 00:07:44,550 --> 00:07:46,170 Edad mayor o igual que 18 186 00:07:46,170 --> 00:07:46,829 ¿Vale? 187 00:07:46,829 --> 00:07:47,550 Los hemos usado ya 188 00:07:47,550 --> 00:07:48,509 Para poner expresiones 189 00:07:48,509 --> 00:07:50,329 Porque no se nos hacen raros 190 00:07:50,329 --> 00:07:51,410 No se nos hacen raros 191 00:07:51,410 --> 00:07:52,170 ¿Vale? 192 00:07:52,970 --> 00:07:53,490 Repito 193 00:07:53,490 --> 00:07:58,430 De nuevo, no confundir este operador con el operador de asignación, que es este. 194 00:07:59,670 --> 00:08:08,410 El igual simple en Java, o sea, un único símbolo igual, solo tiene un uso, solo tiene un uso, que es asignar. 195 00:08:10,129 --> 00:08:12,589 Este solo tiene un uso, el igual simple. 196 00:08:14,790 --> 00:08:22,589 Y este otro solo tiene un uso, que es formar una expresión que signifique este es igual a este. 197 00:08:22,589 --> 00:08:25,170 ¿Vale? Entonces son dos usos diferentes 198 00:08:25,170 --> 00:08:27,870 ¿Vale? 199 00:08:29,029 --> 00:08:31,149 Entonces, los operadores de comparación 200 00:08:31,149 --> 00:08:32,590 ¿Qué comparan? 201 00:08:32,909 --> 00:08:34,690 Valores que tengan orden 202 00:08:34,690 --> 00:08:36,450 Si no, no tiene ningún sentido 203 00:08:36,450 --> 00:08:39,070 Los operadores de comparación 204 00:08:39,070 --> 00:08:47,379 Comparan valores 205 00:08:47,379 --> 00:08:48,159 Que tengan orden 206 00:08:48,159 --> 00:08:49,559 ¿Vale? 207 00:08:50,179 --> 00:08:54,299 Y que devuelven 208 00:08:54,299 --> 00:08:56,200 Una condición 209 00:08:56,200 --> 00:08:58,519 Perdón, devuelven un boolean 210 00:08:58,519 --> 00:09:01,259 Un valor boolean 211 00:09:01,259 --> 00:09:11,350 es decir, la expresión que nosotros formamos con operadores de comparación, 212 00:09:11,470 --> 00:09:15,350 lo que nos devuelve es un boolean, nos devuelve true o false, ¿vale? 213 00:09:15,809 --> 00:09:32,700 Porque con estos operadores formamos condiciones, ¿vale? 214 00:09:32,759 --> 00:09:36,320 Formamos condiciones que pueden ser true o pueden ser false, ¿no? 215 00:09:36,700 --> 00:09:38,559 Lo que pueden ser las condiciones, o es true o es false. 216 00:09:39,159 --> 00:09:43,799 Entonces, esa es la diferencia fundamental entre los aritméticos y los de comparación. 217 00:09:43,799 --> 00:09:53,120 Los aritméticos combinan números con el matiz de que este puede combinar cadena y número también, o dos cadenas 218 00:09:53,120 --> 00:09:55,259 Y entonces ya es concatenación, no es aritmético 219 00:09:55,259 --> 00:10:02,379 Entonces este, por tanto, es suma aritmética, pero también es concatenación cuando combina esto 220 00:10:02,379 --> 00:10:13,139 Entonces los aritméticos sirven para relacionar números, combinar números y dar como resultado otro número 221 00:10:13,139 --> 00:10:17,279 Las expresiones en las que están involucrados dan como resultado un número 222 00:10:17,279 --> 00:10:21,899 Y sin embargo las expresiones en las que están involucrados estos 223 00:10:21,899 --> 00:10:25,940 Dan como resultado un boolean, una condición, un true o un false 224 00:10:25,940 --> 00:10:32,159 Esta expresión es una expresión con un operador de comparación 225 00:10:32,159 --> 00:10:35,360 Y lo que nos devuelve es true o false 226 00:10:35,360 --> 00:10:37,299 Como resultado de evaluarla, true o false 227 00:10:37,299 --> 00:10:44,139 Sin embargo esta expresión lo que nos devuelve es un número 228 00:10:44,139 --> 00:10:46,500 ¿Vale? Porque el operador es aritmético 229 00:10:46,500 --> 00:10:47,580 Os devuelvo el número 230 00:10:47,580 --> 00:10:54,070 Bueno, pues entonces 231 00:10:54,070 --> 00:10:57,429 Igual que hemos mencionado ya estos operadores 232 00:10:57,429 --> 00:10:59,350 Para poder hacer unas primeras expresiones 233 00:10:59,350 --> 00:11:01,529 Para trabajar con asignaciones a variables 234 00:11:01,529 --> 00:11:04,889 Pues hay muchos más operadores en Java 235 00:11:04,889 --> 00:11:07,350 Que podemos usar para hacer expresiones más complejas 236 00:11:07,350 --> 00:11:08,389 Que necesitamos 237 00:11:08,389 --> 00:11:15,129 Para poder resolver cualquiera de los requisitos 238 00:11:15,129 --> 00:11:16,250 Que nos plantea un programa 239 00:11:16,250 --> 00:11:18,389 bueno, entonces ahora tenemos que verlos 240 00:11:18,389 --> 00:11:20,429 tenemos que ver ya los operadores que hay 241 00:11:20,429 --> 00:11:22,210 ya sabiendo que sirven para qué 242 00:11:22,210 --> 00:11:24,090 sirven para hacer expresiones 243 00:11:24,090 --> 00:11:26,309 y esas expresiones para qué sirven 244 00:11:26,309 --> 00:11:27,490 para dárselas a variables 245 00:11:27,490 --> 00:11:30,549 pues ya sabiendo eso y ya estando situados ahí 246 00:11:30,549 --> 00:11:32,509 ahora ya vamos a ver de qué operadores 247 00:11:32,509 --> 00:11:34,450 disponemos para hacer expresiones 248 00:11:34,450 --> 00:11:36,429 ¿vale? entonces para eso 249 00:11:36,429 --> 00:11:38,649 para tenerlo todo recogido junto y no 250 00:11:38,649 --> 00:11:40,450 porque esto sí que es 251 00:11:40,450 --> 00:11:42,210 un rollo de pipipi, son estos 252 00:11:42,210 --> 00:11:44,169 para tenerlo todo recogido junto 253 00:11:44,169 --> 00:11:51,929 sino ponerlos ahí en un proyecto que se hace más pesado, pues está este ficherito, ¿vale? En el aula virtual. 254 00:11:53,750 --> 00:12:00,990 Entonces, a partir de él vamos a usar, vamos a ver qué operadores tenemos, vamos a hacer algunos ejemplitos de cómo funcionan 255 00:12:00,990 --> 00:12:08,570 y ya tendríamos esta primera parte de tipos de datos, entrada y salida por consola, pues en realidad vista, 256 00:12:08,570 --> 00:12:10,970 Falta de, claro, hacer ejercicios y todo eso 257 00:12:10,970 --> 00:12:13,289 Venga, pues vamos a ver 258 00:12:13,289 --> 00:12:15,149 De qué operadores disponemos 259 00:12:15,149 --> 00:12:20,039 Vale 260 00:12:20,039 --> 00:12:28,860 Vale, y me voy a hacer aquí 261 00:12:28,860 --> 00:12:30,039 Voy a borrar esto que tenía 262 00:12:30,039 --> 00:12:32,259 Me voy a hacer un proyecto 263 00:12:32,259 --> 00:12:35,179 Para en paralelo a ver el fichero 264 00:12:35,179 --> 00:12:36,960 Y haciendo ejemplos 265 00:12:36,960 --> 00:12:38,620 De expresiones con esos operadores 266 00:12:38,620 --> 00:12:50,820 Vale 267 00:12:50,820 --> 00:12:53,460 Pues venga 268 00:12:53,460 --> 00:12:54,960 Me voy a hacer otro proyecto 269 00:12:54,960 --> 00:12:56,320 Que sea 270 00:12:56,320 --> 00:13:00,200 Proyecto 271 00:13:00,200 --> 00:13:01,960 Ejemplo operadores 272 00:13:01,960 --> 00:13:02,740 Y ya está 273 00:13:02,740 --> 00:13:11,600 Ejemplos 274 00:13:11,600 --> 00:13:12,600 Operadores 275 00:13:12,600 --> 00:13:15,139 ¿Vale? 276 00:13:17,139 --> 00:13:31,419 Y a ver 277 00:13:31,419 --> 00:13:42,000 A ver 278 00:13:42,000 --> 00:13:58,590 Proyecto ejemplo operadores 279 00:13:58,590 --> 00:14:04,620 Vale 280 00:14:04,620 --> 00:14:16,240 Venga, me voy a hacer un paquete ejemplos 281 00:14:16,240 --> 00:14:18,259 Y ahí en una clase 282 00:14:18,259 --> 00:14:22,320 Podemos ir poniendo ejemplo de esto que vayamos viendo 283 00:14:22,320 --> 00:14:24,980 Venga, pues vamos al lío 284 00:14:24,980 --> 00:14:26,559 Esto ya digo es un poquito rollo 285 00:14:26,559 --> 00:14:28,820 Pero bueno, tenemos que irlos viendo, irlos siguiendo y ya está 286 00:14:28,820 --> 00:14:32,419 Vale, operadores de los que disponemos en Java 287 00:14:32,419 --> 00:14:34,039 Que son prácticamente 288 00:14:34,039 --> 00:14:36,399 La misma colección que cualquier otro lenguaje 289 00:14:36,399 --> 00:14:36,960 De programación 290 00:14:36,960 --> 00:14:41,039 Los aritméticos ya los conocemos 291 00:14:41,039 --> 00:14:43,779 No tenemos nada que decir de ellos 292 00:14:43,779 --> 00:14:44,840 ¿Vale? 293 00:14:45,539 --> 00:14:47,279 Entonces, bueno, aquí el fichero, pues bueno 294 00:14:47,279 --> 00:14:49,080 Explica alguna cosilla de ellos y poco más 295 00:14:49,080 --> 00:14:51,940 El igual también lo conocemos, es para asignar 296 00:14:51,940 --> 00:14:54,259 No hay mucho que decir sobre él 297 00:14:54,259 --> 00:14:56,379 ¿Vale? Aunque aquí explica alguna cosita 298 00:14:56,379 --> 00:14:57,980 Más, pero bueno 299 00:14:57,980 --> 00:15:00,720 Vale 300 00:15:00,720 --> 00:15:02,639 A ver, ahora ya 301 00:15:02,639 --> 00:15:05,139 Siguiente cosa que incorporamos 302 00:15:05,139 --> 00:15:07,259 Para facilitar la escritura de código 303 00:15:07,259 --> 00:15:08,980 Esto que dice aquí 304 00:15:08,980 --> 00:15:14,100 El operador de asignación 305 00:15:14,100 --> 00:15:18,220 Se puede combinar 306 00:15:18,220 --> 00:15:20,299 De una manera, se puede compactar 307 00:15:20,299 --> 00:15:21,919 Se puede compactar 308 00:15:21,919 --> 00:15:23,679 Con la expresión que tiene después 309 00:15:23,679 --> 00:15:25,700 Siguiendo esta regla 310 00:15:25,700 --> 00:15:27,440 Vamos a ver 311 00:15:27,440 --> 00:15:29,600 Es decir, vamos a poner aquí 312 00:15:29,600 --> 00:15:37,620 Ejemplos 313 00:15:37,620 --> 00:15:43,899 Vale, pues aquí tengo mi 314 00:15:43,899 --> 00:15:47,600 Vale, a ver, esto, ¿qué es esto? 315 00:15:48,179 --> 00:15:50,419 Más igual o menos 316 00:15:50,419 --> 00:15:54,500 Igual o por igual 317 00:15:54,500 --> 00:15:59,899 O división igual 318 00:15:59,899 --> 00:16:07,279 O por ciento igual, resto, debería llamarlo resto en vez de por ciento 319 00:16:07,279 --> 00:16:11,240 Para no liar, vale, pues esto 320 00:16:11,240 --> 00:16:14,960 Esto es un operador también, pero ya se nos suena un poco raro. 321 00:16:15,360 --> 00:16:21,519 Nos suena un poco raro porque es como si fuera la combinación de aritmético y asignación. 322 00:16:22,419 --> 00:16:26,320 Vale, efectivamente se pueden combinar aritméticos y asignaciones. 323 00:16:27,200 --> 00:16:28,039 ¿Para qué? 324 00:16:28,240 --> 00:16:29,960 Para que te sume intro a ciclo automáticamente. 325 00:16:30,220 --> 00:16:34,740 Justo, solamente a efectos de que a escribir código me quede más cortita la línea. 326 00:16:35,360 --> 00:16:36,159 Para nada más. 327 00:16:36,159 --> 00:16:41,519 Estos operadores tienen sentido cuando tú tienes una variable 328 00:16:41,519 --> 00:16:43,039 Vamos a poner aquí una variable 329 00:16:43,039 --> 00:16:46,039 Con un nombre feísimo 330 00:16:46,039 --> 00:16:48,179 Y a esta variable 331 00:16:48,179 --> 00:16:55,740 A esa misma variable le asignas su valor 332 00:16:55,740 --> 00:16:58,799 Una expresión que la implique a ella 333 00:16:58,799 --> 00:17:00,259 Que le implique a ella 334 00:17:00,259 --> 00:17:04,779 Por ejemplo, a la variable x le voy a sumar 7 335 00:17:04,779 --> 00:17:09,839 y el resultado de sumarle 7 se lo vuelvo a asignar a x. 336 00:17:10,799 --> 00:17:14,480 Entonces, estos operadores tienen sentido cuando nos encontramos con... 337 00:17:14,480 --> 00:17:21,559 Claro, cuando nos encontramos una expresión, perdón, cuando nos encontramos una asignación 338 00:17:21,559 --> 00:17:28,319 en la cual en la expresión de la derecha participa la propia variable a la que asigno. 339 00:17:28,319 --> 00:17:30,119 entonces en ese caso 340 00:17:30,119 --> 00:17:31,819 cuando eso ocurre 341 00:17:31,819 --> 00:17:34,119 podemos compactar esta línea 342 00:17:34,119 --> 00:17:36,559 en una única, bueno aquí para quitar el error 343 00:17:36,559 --> 00:17:38,160 de compilación, aquí lógicamente 344 00:17:38,160 --> 00:17:39,920 el compilador me está diciendo 345 00:17:39,920 --> 00:17:42,940 cuidado que x no está inicializada 346 00:17:42,940 --> 00:17:44,359 vale, eso ya lo sabemos 347 00:17:44,359 --> 00:17:46,759 vale, ese error ya no nos asusta 348 00:17:46,759 --> 00:17:48,599 decimos, claro, efectivamente, yo no puedo 349 00:17:48,599 --> 00:17:50,539 usar una variable en una 350 00:17:50,539 --> 00:17:52,480 expresión, no la puedo usar si no tiene un valor 351 00:17:52,480 --> 00:17:54,700 previo, no puedo, entonces ese error de compilación 352 00:17:54,700 --> 00:17:56,539 no nos asusta, es verdad, venga, vamos a darle un valor 353 00:17:56,539 --> 00:17:58,619 cualquiera, para que el compilador 354 00:17:58,619 --> 00:18:00,640 se calle. Vale, ya se ha 355 00:18:00,640 --> 00:18:02,779 callado. Ahora, esta línea 356 00:18:02,779 --> 00:18:04,579 así puesta, pues está muy bien y no 357 00:18:04,579 --> 00:18:06,319 pasa nada. Y se puede quedar así 358 00:18:06,319 --> 00:18:08,619 porque además deja 359 00:18:08,619 --> 00:18:10,400 muy claro que a x 360 00:18:10,400 --> 00:18:12,779 la sustituimos por lo que tuviera 361 00:18:12,779 --> 00:18:14,579 pero ahora sumado 7. 362 00:18:14,839 --> 00:18:16,140 Pisamos el valor anterior, 363 00:18:16,680 --> 00:18:17,920 lo pisamos sumándole 7. 364 00:18:18,660 --> 00:18:20,440 Pero, ¿qué es lo que vamos a ver 365 00:18:20,440 --> 00:18:22,319 normalmente? No vamos a ver esta expresión. 366 00:18:22,839 --> 00:18:24,160 Lo que vamos a ver es esto. 367 00:18:24,640 --> 00:18:25,559 x más 368 00:18:25,559 --> 00:18:28,099 igual 7 369 00:18:28,099 --> 00:18:30,400 esto es lo que vamos a ver 370 00:18:30,400 --> 00:18:34,519 entonces cuando uno ve una expresión 371 00:18:34,519 --> 00:18:35,799 con un operador de estos 372 00:18:35,799 --> 00:18:38,599 para interpretarla bien 373 00:18:38,599 --> 00:18:40,380 ¿qué es lo que tiene que hacer? 374 00:18:42,589 --> 00:18:44,190 el igual lo hace desaparecer 375 00:18:44,190 --> 00:18:45,490 como si no existiera 376 00:18:45,490 --> 00:18:46,529 lo hace desaparecer 377 00:18:46,529 --> 00:18:48,269 le queda una expresión 378 00:18:48,269 --> 00:18:49,890 porque si el igual lo hace desaparecer 379 00:18:49,890 --> 00:18:50,690 le queda una expresión 380 00:18:50,690 --> 00:18:53,750 claro, evalúa esa expresión 381 00:18:53,750 --> 00:18:56,650 y ahora el resultado de esa expresión 382 00:18:56,650 --> 00:18:57,569 ¿a quién se lo asigna? 383 00:18:57,569 --> 00:19:00,470 a la variable que tiene a la izquierda 384 00:19:00,470 --> 00:19:01,329 este operador 385 00:19:01,329 --> 00:19:03,369 a la variable que tenga a la izquierda 386 00:19:03,369 --> 00:19:05,569 así es como se interpreta, ¿vale? 387 00:19:05,609 --> 00:19:08,170 por si uno se hace un lío, porque esto puede aparecer 388 00:19:08,170 --> 00:19:09,789 en una expresión 389 00:19:09,789 --> 00:19:11,789 espera, que es que la cámara es un rollo 390 00:19:11,789 --> 00:19:12,890 vamos a poner aquí 391 00:19:12,890 --> 00:19:15,170 en una expresión más compleja 392 00:19:15,170 --> 00:19:19,880 a ver, voy a poner el propio Java 393 00:19:19,880 --> 00:19:33,180 vale, bueno, no estoy 394 00:19:33,180 --> 00:19:37,460 espera, tengo que hacer otra variable para poner 395 00:19:37,460 --> 00:19:37,960 a ver 396 00:19:37,960 --> 00:19:55,019 Fijaos, por ejemplo 397 00:19:55,019 --> 00:19:56,000 Eso que has puesto ahí arriba 398 00:19:56,000 --> 00:19:57,779 Hay que poner dos puntos y comas seguidos 399 00:19:57,779 --> 00:20:00,880 Ay, no, no, no, es que lo he hecho así a lo bestia 400 00:20:00,880 --> 00:20:01,500 Y ha seguido 401 00:20:01,500 --> 00:20:04,000 No daros de compilación porque los puntos y comas 402 00:20:04,000 --> 00:20:05,839 En realidad, molestar no molestan 403 00:20:05,839 --> 00:20:07,640 Los puntos y comas en Java 404 00:20:07,640 --> 00:20:09,500 Sirven para terminar una sentencia 405 00:20:09,500 --> 00:20:12,220 A diferencia de Python, que no hace falta 406 00:20:12,220 --> 00:20:14,099 Porque, bueno, por razones varias 407 00:20:14,099 --> 00:20:16,099 Si yo lo pongo, significa 408 00:20:16,099 --> 00:20:17,880 Termina la sentencia anterior, que es vacía 409 00:20:17,880 --> 00:20:19,819 Entonces molestar no molesta, pero hombre, confunde 410 00:20:19,819 --> 00:20:21,619 Por eso no me ha dado error de compilación 411 00:20:21,619 --> 00:20:22,720 Pero yo no lo he hecho a propósito 412 00:20:22,720 --> 00:20:25,380 Es que me ha salido de corrido 413 00:20:25,380 --> 00:20:27,579 Pero sí, está bien que cuando veáis 414 00:20:27,579 --> 00:20:28,599 Alguna cosa rara 415 00:20:28,599 --> 00:20:30,839 No la copiéis sin más diciendo 416 00:20:30,839 --> 00:20:33,059 Uy, a lo mejor eso no lo he entendido y ya lo entenderé después 417 00:20:33,059 --> 00:20:35,140 Porque perfectamente puede haber escrito una tontería 418 00:20:35,140 --> 00:20:35,819 Y no me he dado cuenta 419 00:20:35,819 --> 00:20:37,740 Entonces cualquier cosa rara que veáis 420 00:20:37,740 --> 00:20:40,500 Pues me decís, ¿hay alguna razón para que lo hayas puesto? 421 00:20:41,279 --> 00:20:43,920 Por eso, lo digo porque eso es lo que tenéis que hacer 422 00:20:43,920 --> 00:20:45,119 ¿Vale? 423 00:20:45,500 --> 00:20:47,019 Que yo puedo escribir muchas tonterías 424 00:20:47,019 --> 00:21:09,680 Bueno, pues entonces, este operador asignación, más o menos ya entendemos cómo se interpreta. Se interpreta. El igual lo hago desaparecer. Vale. Hago la expresión que me ha resultado. Vale, hago la expresión que me ha resultado. 425 00:21:09,680 --> 00:21:14,259 Y el resultado se lo asigno a la izquierda, ¿vale? Se lo asigno a la izquierda. 426 00:21:14,599 --> 00:21:16,680 Entonces, por eso esta es igual que la de arriba. 427 00:21:18,259 --> 00:21:23,319 Entonces, normalmente estos operadores se usan solamente en expresiones sencillas de este tipo, porque si no lo complican. 428 00:21:24,220 --> 00:21:26,240 También lo podríamos usar de esta manera, ¿verdad? 429 00:21:27,019 --> 00:21:35,880 X por igual, pues X, por ejemplo. 430 00:21:37,660 --> 00:21:41,480 Esto puede parecer raro, pero también tiene sentido. 431 00:21:42,099 --> 00:21:43,359 ¿Esto cómo lo interpretaríamos? 432 00:21:43,740 --> 00:21:44,440 X por X. 433 00:21:44,539 --> 00:21:45,920 Claro, X por X igual a X. 434 00:21:46,339 --> 00:21:47,099 Le quito el igual. 435 00:21:47,339 --> 00:21:48,720 Me queda la expresión X por X. 436 00:21:49,079 --> 00:21:49,259 Vale. 437 00:21:49,880 --> 00:21:51,039 X por X lo evalúo. 438 00:21:51,480 --> 00:21:54,380 Y el resultado se lo doy a la que tenga a la izquierda. 439 00:21:55,440 --> 00:21:55,680 ¿Vale? 440 00:21:55,680 --> 00:22:00,500 Entonces, esta expresión sería exactamente igual que haber hecho esta. 441 00:22:01,000 --> 00:22:04,720 X igual a X por X. 442 00:22:05,400 --> 00:22:05,960 ¿Vale? 443 00:22:06,380 --> 00:22:07,980 Exactamente igual a haber hecho esta. 444 00:22:10,210 --> 00:22:14,609 Entonces, ¿es obligatorio, imprescindible usar el operador que lo compacta? 445 00:22:14,710 --> 00:22:19,630 No, pero bueno, normalmente es habitual porque no sale de corrido ponerlo así. 446 00:22:20,150 --> 00:22:24,630 Entonces, más que usarlo vosotros de forma natural ahora, 447 00:22:24,769 --> 00:22:27,450 que igual no sale de forma natural tan rápido, 448 00:22:28,109 --> 00:22:30,890 ahora mismo el punto importante es que entendáis cómo se interpreta, 449 00:22:30,890 --> 00:22:34,369 que entendáis cómo se interpreta y luego ya se usa de forma natural. 450 00:22:34,369 --> 00:23:01,849 Vale, entonces tiene sentido usarlo cuando realmente no complica el código, vale, no lo complica, porque poner esta expresión y poner esta a efectos computacionales de eficiencia es lo mismo, a la máquina virtual le da igual, entonces a veces confundimos, a veces confundimos que un código sea más corto en líneas de código fuente con que es más eficiente para estudiar mejor, no, simplemente es más cortito en código fuente, 451 00:23:01,849 --> 00:23:09,029 Pero luego eso cuando se compile, el resultado es igual, una vez compilado, que un código que hace lo mismo con más líneas. 452 00:23:09,970 --> 00:23:11,769 Bueno, no en todos los casos, depende cómo... 453 00:23:11,769 --> 00:23:18,730 Pero en este caso, por ejemplo, esta línea y esta línea son idénticas para la máquina virtual, idénticas. 454 00:23:19,130 --> 00:23:21,849 La única diferencia es a efectos de escribir el código fuente. 455 00:23:23,210 --> 00:23:30,390 Entonces, como el resultado de un código fuente debería ser legible para el que lo está mirando, entendible, 456 00:23:30,390 --> 00:23:33,210 pues se trata de no usar los operadores 457 00:23:33,210 --> 00:23:34,970 de manera que compliquen 458 00:23:34,970 --> 00:23:37,130 la elegibilidad del código y que uno lo vea y no entienda 459 00:23:37,130 --> 00:23:37,789 lo que está haciendo 460 00:23:37,789 --> 00:23:41,410 entonces, en estos casos, pues no lo complica 461 00:23:41,410 --> 00:23:42,829 porque todos entendemos ya que es 462 00:23:42,829 --> 00:23:45,789 x más igual 7 o x por igual x 463 00:23:45,789 --> 00:23:47,250 entonces en esos contextos 464 00:23:47,250 --> 00:23:47,970 se usa mucho 465 00:23:47,970 --> 00:23:51,309 pero también podríais verlo en expresiones más complejas 466 00:23:51,309 --> 00:23:51,910 como esta 467 00:23:51,910 --> 00:23:55,980 entonces 468 00:23:55,980 --> 00:24:02,470 por ejemplo, ¿qué estaríamos haciendo en esta expresión? 469 00:24:02,549 --> 00:24:04,250 vamos a intentar interpretar 470 00:24:04,250 --> 00:24:05,190 Esto 471 00:24:05,190 --> 00:24:08,029 El compilador no me ha dado fallo 472 00:24:08,029 --> 00:24:09,230 Debe ser que esto traga 473 00:24:09,230 --> 00:24:11,230 Vale, pues estaríamos haciendo 474 00:24:11,230 --> 00:24:13,829 A x súmale lo que sea 475 00:24:13,829 --> 00:24:16,130 Y luego se lo asignas 476 00:24:16,130 --> 00:24:17,410 Vale, entonces 477 00:24:17,410 --> 00:24:18,650 ¿Qué le sumamos a la x? 478 00:24:19,369 --> 00:24:20,910 Pues lo que viene después, la y 479 00:24:20,910 --> 00:24:23,369 Ah, claro, pero a la y ¿qué hay que hacerle? 480 00:24:24,369 --> 00:24:25,470 Restarle lo que sea 481 00:24:25,470 --> 00:24:26,430 Y se lo asignas 482 00:24:26,430 --> 00:24:28,869 Luego esto, a la y le resta 9 483 00:24:28,869 --> 00:24:30,890 Y se lo asigna a x 484 00:24:30,890 --> 00:24:31,769 A y, perdón 485 00:24:31,769 --> 00:24:34,430 y luego cuando la y tiene restado el 9 486 00:24:34,430 --> 00:24:36,509 se lo suma a x y se lo asigna a x 487 00:24:36,509 --> 00:24:37,789 ¿vale? 488 00:24:38,829 --> 00:24:40,670 entonces que no os angustie 489 00:24:40,670 --> 00:24:42,589 ver estos operadores cuando forman 490 00:24:42,589 --> 00:24:44,569 parte de expresiones más 491 00:24:44,569 --> 00:24:44,970 grandes 492 00:24:44,970 --> 00:24:48,369 porque siempre se interpretan siguiendo 493 00:24:48,369 --> 00:24:49,150 este patrón 494 00:24:49,150 --> 00:24:52,490 ¿vale? 1b siempre 495 00:24:52,490 --> 00:24:54,750 una variable seguido del operador 496 00:24:54,750 --> 00:24:56,529 este, entonces lo que sí que tiene que 497 00:24:56,529 --> 00:24:58,529 ocurrir es que este operador tiene que 498 00:24:58,529 --> 00:25:00,349 seguir siempre a una variable 499 00:25:00,349 --> 00:25:02,269 A una variable, tiene que seguirlo siempre 500 00:25:02,269 --> 00:25:03,450 A una variable, vale 501 00:25:03,450 --> 00:25:06,130 Pues uno ve a este operador que sigue a una variable 502 00:25:06,130 --> 00:25:07,549 Ah, vale, ¿qué hago? 503 00:25:08,630 --> 00:25:10,069 Del igual por ahora me olvido 504 00:25:10,069 --> 00:25:12,509 Y digo, esto significa que a x 505 00:25:12,509 --> 00:25:14,750 Súmale lo que venga después 506 00:25:14,750 --> 00:25:16,890 Vale, ¿y qué viene después? 507 00:25:17,250 --> 00:25:17,650 La y 508 00:25:17,650 --> 00:25:19,890 Pero es que la y me dicen 509 00:25:19,890 --> 00:25:22,049 A su vez está seguida de un menor o igual 510 00:25:22,049 --> 00:25:23,930 Con lo cual digo, ah, espérate 511 00:25:23,930 --> 00:25:25,930 Pero es que la y, como está seguida de un menor o igual 512 00:25:25,930 --> 00:25:27,970 Esto me está diciendo, quita el igual 513 00:25:27,970 --> 00:25:30,009 A la y, restale el 9 514 00:25:30,009 --> 00:25:31,890 y asígnaselo a la Y. 515 00:25:32,329 --> 00:25:33,430 Vale, ya tenemos el valor de Y. 516 00:25:33,910 --> 00:25:36,009 Y ahora ya podemos completar la suma que nos faltaba. 517 00:25:36,430 --> 00:25:38,450 Que es a la X sumarle la Y 518 00:25:38,450 --> 00:25:40,849 y asígnaselo a la X. 519 00:25:42,049 --> 00:25:43,349 Entonces, esto lo que pasa 520 00:25:43,349 --> 00:25:45,970 es que es una expresión que nos complica la existencia. 521 00:25:46,130 --> 00:25:47,549 Porque uno no ve aquí rápidamente 522 00:25:47,549 --> 00:25:48,930 que a la X le esté sumando 523 00:25:48,930 --> 00:25:50,990 nueve unidades menos de lo que tenía la Y. 524 00:25:51,309 --> 00:25:52,109 Que es lo que está haciendo. 525 00:25:52,250 --> 00:25:54,029 A X sumarle nueve menos de lo que tenía la Y. 526 00:25:54,150 --> 00:25:55,529 No lo ve así de buenas a primeras. 527 00:25:56,049 --> 00:25:58,430 Esa operación en sí no solo cambia el valor de la X, 528 00:25:58,430 --> 00:26:01,309 Claro, efectivamente 529 00:26:01,309 --> 00:26:03,609 Entonces, efectivamente la cambia para siempre 530 00:26:03,609 --> 00:26:05,750 Esta expresión sería igual que haber hecho esto 531 00:26:05,750 --> 00:26:08,029 A la y restale 9 532 00:26:08,029 --> 00:26:09,509 Y ahora 533 00:26:09,509 --> 00:26:10,569 A la x 534 00:26:10,569 --> 00:26:12,309 Súmale y 535 00:26:12,309 --> 00:26:17,119 Esto de aquí y esto de aquí es lo mismo 536 00:26:17,119 --> 00:26:18,619 Pero a mí 537 00:26:18,619 --> 00:26:21,039 Personalmente me parece que si quiero 538 00:26:21,039 --> 00:26:22,480 Hacer esto en este caso 539 00:26:22,480 --> 00:26:24,980 Esto sería más sencillo que esto 540 00:26:24,980 --> 00:26:26,039 Bueno 541 00:26:26,039 --> 00:26:28,900 Esto en realidad quedaría todavía más bonito 542 00:26:28,900 --> 00:26:30,119 Y menor o igual 9 543 00:26:30,119 --> 00:26:31,859 Y X 544 00:26:31,859 --> 00:26:33,660 Más igual Y 545 00:26:33,660 --> 00:26:38,789 Entonces, esto vale, esto se entiende claro 546 00:26:38,789 --> 00:26:41,490 A la Y quítale 9 y a la X suma ley 547 00:26:41,490 --> 00:26:43,750 Si lo pongo en una sola expresión 548 00:26:43,750 --> 00:26:45,670 Pues quizá lo hago más lioso 549 00:26:45,670 --> 00:26:47,529 Pero lo que quiero decir 550 00:26:47,529 --> 00:26:50,170 Es que si veis una expresión gorda 551 00:26:50,170 --> 00:26:51,150 En algún sitio 552 00:26:51,150 --> 00:26:52,690 Que involucra varias veces esto 553 00:26:52,690 --> 00:26:55,250 No pasa nada, se trata de ir haciéndola por partes 554 00:26:55,250 --> 00:26:57,250 Recordad que siempre se va de izquierda a derecha 555 00:26:57,250 --> 00:26:58,450 Y lo que nos mande 556 00:26:58,450 --> 00:27:00,349 X más algo 557 00:27:00,349 --> 00:27:01,990 vale, el igual lo dejo para después 558 00:27:01,990 --> 00:27:04,069 porque el igual es la parte final que es asignar 559 00:27:04,069 --> 00:27:05,130 cuando ya tengo el algo 560 00:27:05,130 --> 00:27:08,269 ahora me voy al algo, uy que el algo a su vez me dice 561 00:27:08,269 --> 00:27:10,809 que tengo que hacer una operación antes de asignación 562 00:27:10,809 --> 00:27:12,309 vale, pues no pasa nada 563 00:27:12,309 --> 00:27:13,930 la hago, vale 564 00:27:13,930 --> 00:27:16,049 y cuando ya tenga esa operación de asignación hecha 565 00:27:16,049 --> 00:27:18,710 ahora ya tiene sentido que haga la suma y asigne otra vez 566 00:27:18,710 --> 00:27:19,650 vale 567 00:27:19,650 --> 00:27:22,650 bueno, pues así podemos combinar 568 00:27:22,650 --> 00:27:24,670 los aritméticos 569 00:27:24,670 --> 00:27:26,410 con los de asignación 570 00:27:26,410 --> 00:27:28,390 para hacer operaciones un poquito más 571 00:27:28,390 --> 00:27:30,210 más compactas 572 00:27:30,210 --> 00:27:33,650 Vamos a ponerlo aquí 573 00:27:33,650 --> 00:27:42,980 Vale, más operadores 574 00:27:42,980 --> 00:27:44,799 Esto 575 00:27:44,799 --> 00:27:46,180 Se usa muchísimo, ¿vale? 576 00:27:46,220 --> 00:27:49,119 De nuevo es otra cosa que a la cabeza 577 00:27:49,119 --> 00:27:51,980 Vale 578 00:27:51,980 --> 00:27:54,859 Bueno, aquí nada, dice tonterías 579 00:27:54,859 --> 00:27:57,059 Bueno, tonterías no, cosas triviales 580 00:27:57,059 --> 00:27:58,180 Vale 581 00:27:58,180 --> 00:28:00,319 Aquí 582 00:28:00,319 --> 00:28:01,059 Pues nada 583 00:28:01,059 --> 00:28:04,240 Recuerda, es para recordar 584 00:28:04,240 --> 00:28:06,579 Que lo podemos combinar con cualquier otro operador 585 00:28:06,579 --> 00:28:07,660 El igual 586 00:28:07,660 --> 00:28:09,759 Entonces con estos cinco está claro 587 00:28:09,759 --> 00:28:11,359 Porque ya los conocemos, los hemos visto 588 00:28:11,359 --> 00:28:14,140 Y también los puede combinar con estos otros 589 00:28:14,140 --> 00:28:16,339 Pero es que estos otros todavía no sabemos lo que significan 590 00:28:16,339 --> 00:28:17,880 Pero también se podría combinar 591 00:28:17,880 --> 00:28:20,140 El igual con ellos, lo que pasa es que aún no sabemos lo que significan 592 00:28:20,140 --> 00:28:21,539 Vale 593 00:28:21,539 --> 00:28:24,299 Esto lo incluye simplemente 594 00:28:24,299 --> 00:28:26,099 Esto lo he incluido aquí 595 00:28:26,099 --> 00:28:27,539 Solamente para recordar 596 00:28:27,539 --> 00:28:29,420 Que el operador más, cuidado con él 597 00:28:29,420 --> 00:28:31,680 Porque también puede ser no aritmético 598 00:28:31,680 --> 00:28:33,099 Sino de concatenación 599 00:28:33,099 --> 00:28:33,740 Vale 600 00:28:33,740 --> 00:28:39,109 Aquí esto, olvidaros 601 00:28:39,109 --> 00:28:40,349 esto como si no existiera 602 00:28:40,349 --> 00:28:44,930 ¿vale? porque todavía no lo hemos visto 603 00:28:44,930 --> 00:28:47,210 bueno, un ejemplito chorra y ya está 604 00:28:47,210 --> 00:28:49,109 aquí ya 605 00:28:49,109 --> 00:28:50,809 hace referencia a que cuidado 606 00:28:50,809 --> 00:28:51,970 cuando en una expresión 607 00:28:51,970 --> 00:28:54,769 hay varios operadores involucrados 608 00:28:54,769 --> 00:28:56,549 la pregunta es 609 00:28:56,549 --> 00:28:59,210 ¿en qué orden hago las operaciones? 610 00:29:00,089 --> 00:29:00,609 pues eso 611 00:29:00,609 --> 00:29:01,710 sabemos que 612 00:29:01,710 --> 00:29:04,710 si hay paréntesis, primero 613 00:29:04,710 --> 00:29:07,049 hacemos lo que están los paréntesis, eso es como en matemáticas 614 00:29:07,049 --> 00:29:08,750 si hay paréntesis, primero lo que están los paréntesis 615 00:29:08,750 --> 00:29:12,609 Vale, cuando ya los paréntesis los tengo ya todos resueltos 616 00:29:12,609 --> 00:29:13,769 Los tengo todos resueltos 617 00:29:13,769 --> 00:29:15,769 Iré de izquierda a derecha 618 00:29:15,769 --> 00:29:18,710 ¿Vale? Por ejemplo, una expresión así 619 00:29:18,710 --> 00:29:22,430 A ver 620 00:29:22,430 --> 00:29:28,880 Precedencia de operadores 621 00:29:28,880 --> 00:29:30,740 A la orden para evaluar una expresión 622 00:29:30,740 --> 00:29:39,250 Para evaluar una expresión 623 00:29:39,250 --> 00:29:41,529 Primero, los paréntesis 624 00:29:41,529 --> 00:29:42,329 Eso está claro 625 00:29:42,329 --> 00:29:46,680 Primero, paréntesis 626 00:29:46,680 --> 00:29:50,900 Y una vez que he evaluado los paréntesis 627 00:29:50,900 --> 00:29:52,279 Ya tengo los paréntesis resueltos 628 00:29:52,279 --> 00:29:54,099 Me voy de izquierda a derecha 629 00:29:54,099 --> 00:30:09,559 pero con la salvedad teniendo en cuenta la precedencia de los operadores. 630 00:30:27,410 --> 00:30:34,349 Por ejemplo, tenemos esta expresión, la variable x que ya teníamos, 631 00:30:34,349 --> 00:30:56,940 Pues nada, igual a x más x por 6 entre x menos 9 más x otra vez, cualquier cosa, ¿vale? 632 00:30:57,519 --> 00:31:04,940 Entonces, en una expresión cualquiera, primero, si hay paréntesis, lo resolvemos, lo primero de todo, lo resolvemos, ¿vale? 633 00:31:04,940 --> 00:31:07,099 entonces yo aquí la primera operación que haría 634 00:31:07,099 --> 00:31:09,039 o la que hace la máquina virtual es coger el 635 00:31:09,039 --> 00:31:10,000 valor antiguo de x 636 00:31:10,000 --> 00:31:12,200 el que tiene en este punto 637 00:31:12,200 --> 00:31:14,980 y restarle 9, vale, ya hemos 638 00:31:14,980 --> 00:31:16,900 la máquina virtual ya tiene ese valor 639 00:31:16,900 --> 00:31:18,579 entonces la máquina virtual 640 00:31:18,579 --> 00:31:20,759 repito, primero 641 00:31:20,759 --> 00:31:23,400 evalúa los paréntesis 642 00:31:23,400 --> 00:31:26,400 que tiene estos 643 00:31:26,400 --> 00:31:29,039 pues evalúa los paréntesis, entonces una vez 644 00:31:29,039 --> 00:31:30,519 que ha evaluado los paréntesis 645 00:31:30,519 --> 00:31:33,220 aquí ya tiene un valor, el que sea 646 00:31:33,220 --> 00:31:48,440 Aquí ya tiene un valor. Voy a poner esto, aunque sea un poco raro, para indicar que aquí ya la máquina virtual habría ya obtenido un valor. Ya tendría el valor que fuera, la máquina virtual. Y que le hubiera dado el valor que fuera. Ya los paréntesis han desaparecido para ella. Todo esto es lo que está en la máquina virtual dentro. 647 00:31:48,440 --> 00:31:51,519 ahora ya nos va a quedar una expresión sin paréntesis 648 00:31:51,519 --> 00:31:53,440 pues ahora ya 649 00:31:53,440 --> 00:31:55,359 sí que seguirá la regla 650 00:31:55,359 --> 00:31:56,920 de izquierda a derecha pero 651 00:31:56,920 --> 00:31:58,700 ejecutará 652 00:31:58,700 --> 00:32:01,640 va de izquierda a derecha 653 00:32:01,640 --> 00:32:03,779 ¿hay un operador cuya precedencia 654 00:32:03,779 --> 00:32:05,339 de los que vienen después sea 655 00:32:05,339 --> 00:32:07,160 antes que este? pues hace 656 00:32:07,160 --> 00:32:09,359 si la respuesta es sí, haría ese primero 657 00:32:09,359 --> 00:32:11,400 si la respuesta es no, ahora ya 658 00:32:11,400 --> 00:32:12,880 hace este y va con el siguiente 659 00:32:12,880 --> 00:32:15,140 ¿hay un operador de los que vienen 660 00:32:15,140 --> 00:32:17,400 después cuya precedencia 661 00:32:17,400 --> 00:32:19,380 sea antes que este, que la respuesta sí 662 00:32:19,380 --> 00:32:21,339 hace primero ese, que no 663 00:32:21,339 --> 00:32:23,099 termina con este 664 00:32:23,099 --> 00:32:24,819 vale, esto 665 00:32:24,819 --> 00:32:27,279 aunque la explicación parezca retorcida 666 00:32:27,279 --> 00:32:29,220 es lo de toda la vida, porque normalmente 667 00:32:29,220 --> 00:32:31,500 uno no tiene expresiones así, entonces es fácil 668 00:32:31,500 --> 00:32:33,759 ver como la máquina virtual lo va a evaluar 669 00:32:33,759 --> 00:32:35,299 entonces en este caso está claro 670 00:32:35,299 --> 00:32:37,380 la precedencia que ya sabemos 671 00:32:37,380 --> 00:32:39,579 de toda la vida es multiplicaciones 672 00:32:39,579 --> 00:32:40,700 divisiones y restos 673 00:32:40,700 --> 00:32:43,099 siempre antes que sumas y restas 674 00:32:43,099 --> 00:32:45,480 lo que sabemos, multiplicaciones 675 00:32:45,480 --> 00:32:47,859 divisiones y restos, como tiene la misma precedencia 676 00:32:47,859 --> 00:32:48,700 de izquierda a derecha 677 00:32:48,700 --> 00:32:51,660 y sumas y restas de izquierda a derecha también 678 00:32:51,660 --> 00:32:53,019 entonces en este caso 679 00:32:53,019 --> 00:32:55,319 haría primero esto 680 00:32:55,319 --> 00:32:57,579 una vez que tiene el valor 681 00:32:57,579 --> 00:32:58,420 3 de esto 682 00:32:58,420 --> 00:33:01,480 haría esto de aquí, y una vez que 683 00:33:01,480 --> 00:33:03,500 tiene el valor 4 de esto, pues ahora ya sí 684 00:33:03,500 --> 00:33:04,259 haría la suma 685 00:33:04,259 --> 00:33:06,140 lo único que lío un poco respecto a esto es 686 00:33:06,140 --> 00:33:09,220 si metes una asignación 687 00:33:09,220 --> 00:33:10,619 ahí, por ejemplo 688 00:33:10,619 --> 00:33:13,000 claro, pero es que entonces lo tienes que hacer 689 00:33:13,000 --> 00:33:14,720 pero es que entonces lo tienes que hacer antes 690 00:33:14,720 --> 00:33:18,279 Claro, por ejemplo, con la expresión que teníamos antes. 691 00:33:18,380 --> 00:33:18,720 A ver. 692 00:33:19,519 --> 00:33:21,539 Es lo único que le digo, porque ahí se cambia el orden. 693 00:33:22,420 --> 00:33:23,799 Me trae un i menos 9. 694 00:33:23,819 --> 00:33:29,140 Claro, entonces aquí, por ejemplo, x más igual 7. 695 00:33:30,119 --> 00:33:30,619 Vale. 696 00:33:31,819 --> 00:33:34,619 Esto es una expresión perfectamente válida. 697 00:33:35,700 --> 00:33:38,220 Recordad que el operador este más igual, menos igual, 698 00:33:38,299 --> 00:33:41,460 se tiene que poner siempre afectando a una variable. 699 00:33:41,819 --> 00:33:42,579 A una variable. 700 00:33:43,299 --> 00:33:43,619 Vale. 701 00:33:44,720 --> 00:33:50,920 Entonces, él va a los paréntesis, x menos 9, sin problema. 702 00:33:51,539 --> 00:33:56,599 Aquí hay otro paréntesis y ve que hay una operación de suma, ¿vale? 703 00:33:56,700 --> 00:33:58,059 Pero asignada a x. 704 00:33:58,740 --> 00:34:02,039 Entonces, pues aquí ya este paréntesis lo interpreta como ya sabemos. 705 00:34:02,259 --> 00:34:11,480 Se olvida del igual, hace la operación, que es x más 7 más 1, lo asigna a x, ¿vale? 706 00:34:11,480 --> 00:34:15,219 Entonces aquí el valor 707 00:34:15,219 --> 00:34:16,599 Que va a operar es 708 00:34:16,599 --> 00:34:17,800 Esto es como haber puesto 709 00:34:17,800 --> 00:34:21,400 El valor resultante va a ser el que tenía x de antes 710 00:34:21,400 --> 00:34:23,360 Más 8, es el valor que va a obtener ahí 711 00:34:23,360 --> 00:34:24,099 La máquina virtual 712 00:34:24,099 --> 00:34:26,619 Y ese valor ya lo multiplicará con 6 después 713 00:34:26,619 --> 00:34:28,599 ¿Y el resto de x como las 20 cuentan ahora? 714 00:34:31,420 --> 00:34:32,599 Con s porque va antes 715 00:34:32,599 --> 00:34:33,880 Porque va de izquierda a derecha 716 00:34:33,880 --> 00:34:36,380 Porque va de izquierda a derecha con s 717 00:34:36,380 --> 00:34:38,380 De todas formas es buena pregunta 718 00:34:38,380 --> 00:34:40,079 Pero claro, expresiones tan raras 719 00:34:40,079 --> 00:34:42,480 Es difícil encontrar, entonces es buena pregunta 720 00:34:42,480 --> 00:34:44,300 porque si lo ponemos aquí 721 00:34:44,300 --> 00:34:46,460 esta X ya va a tener el valor 722 00:34:46,460 --> 00:34:48,579 cambiado, pero si lo pusiéramos 723 00:34:48,579 --> 00:34:48,980 aquí 724 00:34:48,980 --> 00:34:51,679 esta 725 00:34:51,679 --> 00:34:54,440 si lo pusiéramos aquí 726 00:34:54,440 --> 00:34:56,380 para esta evaluación 727 00:34:56,380 --> 00:34:58,360 la X tendría el valor viejo 728 00:34:58,360 --> 00:35:00,219 entonces hay una diferencia 729 00:35:00,219 --> 00:35:02,699 porque es de izquierda a derecha 730 00:35:02,699 --> 00:35:03,579 aunque sea un paréntesis 731 00:35:03,579 --> 00:35:05,860 claro, porque son paréntesis 732 00:35:05,860 --> 00:35:07,840 pero los paréntesis también los va a ir diciendo de izquierda a derecha 733 00:35:07,840 --> 00:35:09,820 o sea, la máquina virtual va secuencial 734 00:35:09,820 --> 00:35:10,820 tiene que seguir un orden 735 00:35:10,820 --> 00:35:28,739 Entonces, efectivamente, aquí esta x usaría el x más 8, pero si esto lo dejamos así, con lo que fuera, la expresión que fuera, y aquí pongo x menos igual 9, 736 00:35:29,780 --> 00:35:38,099 esta x tiene el valor que tenía en ese punto, el que tuviera, pero después de haber hecho esta expresión, x se queda cambiado con menos 9, 737 00:35:38,099 --> 00:35:39,800 se queda cambiado, y ahora esta 738 00:35:39,800 --> 00:35:41,659 sí que utiliza el menos 9 739 00:35:41,659 --> 00:35:44,340 ¿vale? lo que pasa es que esto realmente 740 00:35:44,340 --> 00:35:46,980 formar una expresión 741 00:35:46,980 --> 00:35:48,559 que haga tantas cosas a la vez 742 00:35:48,559 --> 00:35:50,420 cuidado, porque es difícil 743 00:35:50,420 --> 00:35:51,280 que no te confundas 744 00:35:51,280 --> 00:35:53,679 entonces es casi mejor 745 00:35:53,679 --> 00:35:56,139 si quieres hacer una expresión rara 746 00:35:56,139 --> 00:35:57,539 es casi mejor 747 00:35:57,539 --> 00:36:00,739 indicarlo en líneas separadas 748 00:36:00,739 --> 00:36:02,460 porque entonces va a quedar más claro el código 749 00:36:02,460 --> 00:36:03,179 para el que lo haga 750 00:36:03,179 --> 00:36:05,659 claro y para el que lo lea 751 00:36:05,659 --> 00:36:07,280 porque si no se complica un poco 752 00:36:07,280 --> 00:36:09,000 Pero sí, efectivamente esto es válido 753 00:36:09,000 --> 00:36:10,980 Siempre y cuando uno tenga cuidado de que 754 00:36:10,980 --> 00:36:13,099 ¿Es esto lo que quieres hacer seguro? Sí, sí, sí 755 00:36:13,099 --> 00:36:14,400 Vale, pues lo plantas y ya está 756 00:36:14,400 --> 00:36:16,059 Vale 757 00:36:16,059 --> 00:36:19,260 Bueno, entonces en cuanto a precedencia 758 00:36:19,260 --> 00:36:20,880 De operadores, pues por ahora 759 00:36:20,880 --> 00:36:23,119 Ahora mismo con los poquitos que conocemos 760 00:36:23,119 --> 00:36:26,719 En general los aritméticos 761 00:36:26,719 --> 00:36:28,320 Antes que los 762 00:36:28,320 --> 00:36:30,340 De suma y resta 763 00:36:30,340 --> 00:36:34,940 Y ya está, perdón, estoy llamando 764 00:36:34,940 --> 00:36:36,980 Aritméticos a todos y son algebraicos 765 00:36:36,980 --> 00:36:38,820 Los que son aritméticos son suma y resta, ¿verdad? 766 00:36:39,780 --> 00:36:40,139 Sí 767 00:36:40,139 --> 00:36:43,139 Los algebraicos son todos los de las operaciones 768 00:36:43,139 --> 00:36:44,340 Del cuerpo de los enteros 769 00:36:44,340 --> 00:36:46,639 Y los aritméticos son los de sumas y restas 770 00:36:46,639 --> 00:36:49,139 Sí, vale, es que estoy usando mal 771 00:36:49,139 --> 00:36:50,619 Esos términos 772 00:36:50,619 --> 00:36:50,940 Vale 773 00:36:50,940 --> 00:36:54,039 Creo 774 00:36:54,039 --> 00:36:55,960 Sí, ¿verdad? 775 00:36:57,000 --> 00:36:57,380 Vale 776 00:36:57,380 --> 00:37:01,019 Bueno, pues a ver, seguimos con 777 00:37:01,019 --> 00:37:02,659 Operadores 778 00:37:02,659 --> 00:37:04,800 Nada, esto 779 00:37:04,800 --> 00:37:07,039 Bueno, más ejemplitos de precedencia de sumas 780 00:37:07,039 --> 00:37:08,260 Restas, nada 781 00:37:08,260 --> 00:37:11,099 Esto es lo de la promoción 782 00:37:11,099 --> 00:37:12,639 De nuevo vuelvo aquí a explicar 783 00:37:12,639 --> 00:37:15,780 Lo de que si una expresión 784 00:37:15,780 --> 00:37:17,679 Involucra decimales y enteros 785 00:37:17,679 --> 00:37:18,659 El entero se va a decimal 786 00:37:18,659 --> 00:37:21,980 O si involucra short e int 787 00:37:21,980 --> 00:37:23,940 El short se va a int 788 00:37:23,940 --> 00:37:24,280 ¿Vale? 789 00:37:28,400 --> 00:37:29,840 Vale, la promoción automática 790 00:37:29,840 --> 00:37:31,820 El casting sería lo contrario 791 00:37:31,820 --> 00:37:33,119 Forzar el cortado 792 00:37:33,119 --> 00:37:35,079 Pero el casting todavía no lo hemos mencionado 793 00:37:35,079 --> 00:37:36,380 Entonces bueno 794 00:37:36,380 --> 00:37:38,340 Podéis aquí ignorarlo del casting 795 00:37:38,340 --> 00:37:41,079 Porque si lo leéis os va a sonar que tiene sentido 796 00:37:41,079 --> 00:37:41,639 Pero 797 00:37:41,639 --> 00:37:44,719 Pero yo no voy a incidir en el ahora 798 00:37:44,719 --> 00:37:46,820 Porque lo haremos más adelante 799 00:37:46,820 --> 00:37:48,980 Vale, más operadores 800 00:37:48,980 --> 00:37:51,659 Los que se llaman unarios 801 00:37:51,659 --> 00:37:53,559 Porque afectan solo a una variable 802 00:37:53,559 --> 00:37:54,659 No son nada 803 00:37:54,659 --> 00:37:56,179 Son operadores aritméticos iguales 804 00:37:56,179 --> 00:37:57,960 Una forma compactada de hacer esto 805 00:37:57,960 --> 00:37:59,280 Nada más 806 00:37:59,280 --> 00:38:02,719 Entonces los operadores unarios famosos no son nada 807 00:38:02,719 --> 00:38:11,239 Dores más más 808 00:38:11,239 --> 00:38:12,820 Y menos menos 809 00:38:12,820 --> 00:38:14,920 vale 810 00:38:14,920 --> 00:38:17,059 estos operadores 811 00:38:17,059 --> 00:38:19,840 afectan solo a una 812 00:38:19,840 --> 00:38:21,079 variable, vale 813 00:38:21,079 --> 00:38:29,170 y son operadores que dentro 814 00:38:29,170 --> 00:38:31,329 de ellos incluyen asignación 815 00:38:31,329 --> 00:38:33,510 incluyen 816 00:38:33,510 --> 00:38:34,389 una asignación 817 00:38:34,389 --> 00:38:40,030 los demás operadores que hemos visto 818 00:38:40,030 --> 00:38:41,869 la suma, la resta, la multiplicación 819 00:38:41,869 --> 00:38:43,909 si yo luego quería asignar 820 00:38:43,909 --> 00:38:45,550 tenía que hacer la asignación con el igual 821 00:38:45,550 --> 00:38:49,329 silencio por ahí atrás 822 00:38:49,329 --> 00:39:02,210 Estos de aquí incluyen la asignación, pero he puesto el igual ahí dentro, entonces lo veo claro que incluyen la asignación, ¿vale? O sea, esta expresión incluye la asignación, porque esta expresión es igual a esta, incluye la asignación. 823 00:39:02,210 --> 00:39:30,750 Pues estos operadores también incluyen la asignación, es decir, esto es una asignación, aunque yo no vea el igual, claro, porque esto es exactamente igual a esto, x igual a x más 1, es decir, esto es una forma compacta de hacer la asignación de sumar 1 a una variable y volver a asignar el valor a esa misma variable. 824 00:39:32,210 --> 00:39:34,690 Luego este operador incluye suma en 1 825 00:39:34,690 --> 00:39:37,090 e incluye asignar otra vez, las dos cosas. 826 00:39:40,530 --> 00:39:42,309 Le suma un 1 al valor que tuviera 827 00:39:42,309 --> 00:39:44,329 y el resultado final se lo vuelve a asignar a x. 828 00:39:44,809 --> 00:39:46,030 Es decir, esta expresión. 829 00:39:47,230 --> 00:39:49,110 Y esto es la misma sentencia. 830 00:39:49,309 --> 00:39:49,650 La misma. 831 00:39:50,369 --> 00:39:51,670 La sentencia de arriba y la de abajo 832 00:39:51,670 --> 00:39:53,030 son dos sentencias de asignación. 833 00:39:53,409 --> 00:39:54,750 Aunque aquí no vemos el igual. 834 00:39:55,230 --> 00:39:57,170 Es una asignación igualmente, que es la de abajo. 835 00:39:58,250 --> 00:39:59,829 Entonces, como sumar 1 a una variable 836 00:39:59,829 --> 00:40:01,489 o restarle 1 837 00:40:01,489 --> 00:40:04,269 es algo que se hace a menudo porque en un programa 838 00:40:04,269 --> 00:40:06,409 contar es habitual 839 00:40:06,409 --> 00:40:08,030 y contar es de uno en uno 840 00:40:08,030 --> 00:40:10,429 normalmente, pues como en un programa 841 00:40:10,429 --> 00:40:11,829 muchas veces tenemos que contar 842 00:40:11,829 --> 00:40:13,929 sumar 1 varias veces 843 00:40:13,929 --> 00:40:16,230 pues por eso es un operador que se usa 844 00:40:16,230 --> 00:40:16,630 mucho 845 00:40:16,630 --> 00:40:20,110 e igual que está 846 00:40:20,110 --> 00:40:21,730 el más más, está el menos menos 847 00:40:21,730 --> 00:40:23,610 esto también es 848 00:40:23,610 --> 00:40:26,469 una resta 849 00:40:26,469 --> 00:40:27,730 y una asignación 850 00:40:27,730 --> 00:40:29,889 También tiene la asignación 851 00:40:29,889 --> 00:40:32,150 Esto es igual a esto de aquí 852 00:40:32,150 --> 00:40:36,119 X igual a 853 00:40:36,119 --> 00:40:37,920 X menos 1 854 00:40:37,920 --> 00:40:38,820 ¿Vale? 855 00:40:39,659 --> 00:40:41,800 Esto es una asignación también 856 00:40:41,800 --> 00:40:47,800 ¿Vale? 857 00:40:49,909 --> 00:40:51,670 Entonces esto sí que 858 00:40:51,670 --> 00:40:53,590 Se usa muchísimo 859 00:40:53,590 --> 00:40:56,409 Cuando uno quiere sumar 1 o restar 1 860 00:40:56,409 --> 00:40:58,610 A una variable y modificar su valor 861 00:40:58,610 --> 00:40:59,869 Claro, modificar su valor 862 00:40:59,869 --> 00:41:03,010 Sí que usa uno siempre esto 863 00:41:03,010 --> 00:41:05,590 porque esto es mucho más claro 864 00:41:05,590 --> 00:41:06,809 que la expresión incluso 865 00:41:06,809 --> 00:41:09,190 vale, entonces esto sí que se usa mucho 866 00:41:09,190 --> 00:41:12,679 bueno, pues 867 00:41:12,679 --> 00:41:14,840 al igual que podíamos 868 00:41:14,840 --> 00:41:17,079 meter el más igual en expresiones 869 00:41:17,079 --> 00:41:18,920 más grandes, podíamos meterla 870 00:41:18,920 --> 00:41:20,900 también podemos meter el 871 00:41:20,900 --> 00:41:23,059 más más o el menos menos en expresiones más grandes 872 00:41:23,059 --> 00:41:26,679 y no nos tiene que asustar y de hecho muchas veces 873 00:41:26,679 --> 00:41:28,639 lo usamos, por ejemplo vamos a hacer otra variable 874 00:41:28,639 --> 00:41:29,500 para que 875 00:41:29,500 --> 00:41:32,760 y vamos a imaginar que yo ahora le hago 876 00:41:32,760 --> 00:41:34,400 X igual a 877 00:41:34,400 --> 00:41:37,340 X más más 3 878 00:41:37,340 --> 00:41:38,900 Menos 879 00:41:38,900 --> 00:41:41,119 Sí, menos, menos, menos 880 00:41:41,119 --> 00:41:42,659 Para complicaros la vida 881 00:41:42,659 --> 00:41:43,800 6 882 00:41:43,800 --> 00:41:46,400 Para que lo veáis raro 883 00:41:46,400 --> 00:41:48,420 ¿Vale? 884 00:41:51,619 --> 00:41:56,659 Ah, es que me faltaba un más 885 00:41:56,659 --> 00:41:57,860 Claro, tontería 886 00:41:57,860 --> 00:42:01,960 Entonces 887 00:42:01,960 --> 00:42:04,880 ¿Vosotros veis esta expresión y decís, joder, qué fea? 888 00:42:06,340 --> 00:42:06,860 Vale 889 00:42:06,860 --> 00:42:08,280 Pues sí, a ver 890 00:42:08,280 --> 00:42:11,739 Es fea 891 00:42:11,739 --> 00:42:12,780 A ver, que tengo aquí 892 00:42:12,780 --> 00:42:14,599 Programas abiertos o qué 893 00:42:14,599 --> 00:42:15,760 Ah, no, vale 894 00:42:15,760 --> 00:42:19,280 Es fea, pero primero 895 00:42:19,280 --> 00:42:21,699 Es fea 896 00:42:21,699 --> 00:42:23,340 Porque yo 897 00:42:23,340 --> 00:42:26,019 Está muy bien escrita y para Java es perfecta 898 00:42:26,019 --> 00:42:27,320 Y compila perfectamente 899 00:42:27,320 --> 00:42:28,719 Pero es 900 00:42:28,719 --> 00:42:30,519 Sí, pero es fea a los ojos 901 00:42:30,519 --> 00:42:34,260 Porque yo no he seguido un código de estilo bonito 902 00:42:34,260 --> 00:42:35,219 No la he escrito bonita 903 00:42:35,219 --> 00:42:36,920 Entonces es fea a los ojos y no se entiende bien 904 00:42:36,920 --> 00:42:39,239 a que entendéis mejor esto 905 00:42:39,239 --> 00:42:40,760 si yo le pongo aquí un espacio 906 00:42:40,760 --> 00:42:41,860 y ahora le pongo aquí un espacio 907 00:42:41,860 --> 00:42:45,039 ahora lo entendéis mejor, es lo mismo 908 00:42:45,039 --> 00:42:47,059 porque para Java los espacios no existen 909 00:42:47,059 --> 00:42:49,119 pero esta 910 00:42:49,119 --> 00:42:51,179 expresión, ahora ya el que la lee 911 00:42:51,179 --> 00:42:53,179 la entiende un poco mejor 912 00:42:53,179 --> 00:42:55,079 ¿pero primero hace las asignaciones? 913 00:42:55,199 --> 00:42:56,699 sí, no 914 00:42:56,699 --> 00:42:58,760 no 915 00:42:58,760 --> 00:43:01,139 no, a ver, esto sería 916 00:43:01,139 --> 00:43:02,639 a la hora de interpretarlo 917 00:43:02,639 --> 00:43:04,860 es similar, digo similar porque no es igual 918 00:43:04,860 --> 00:43:35,980 precisamente por el orden que digo yo, cuando nosotros hemos hecho esto antes, x más igual 2 y menos igual 7, por ejemplo, perdón, y más y menos igual, bueno, claro, es que como tengo aquí el, voy a quitar esto, el otro, es igual a 7 menos 6, vale, me falta un paréntesis ahí, vale, vamos a dejarlo así para que no quede tan raro, vale, 919 00:43:35,980 --> 00:43:37,460 Entonces, cuando 920 00:43:37,460 --> 00:43:44,090 Me ha faltado una llave en algún sitio 921 00:43:44,090 --> 00:43:45,590 ¿Dónde me sale el rojo? 922 00:43:49,320 --> 00:43:51,460 Me va a faltar una llave en algún lado 923 00:43:51,460 --> 00:43:54,670 A ver, un momento 924 00:43:54,670 --> 00:44:04,099 Porque la tenía declarada de antes 925 00:44:04,099 --> 00:44:05,280 Ah, el rojo 926 00:44:05,280 --> 00:44:06,760 Ah, es que como estaba justo el amarillo 927 00:44:06,760 --> 00:44:07,739 No veía el rojo ahí 928 00:44:07,739 --> 00:44:09,239 Vale, vale, vale 929 00:44:09,239 --> 00:44:11,780 Vale, con el código así tan grande 930 00:44:11,780 --> 00:44:13,619 Vale, bueno, pues entonces 931 00:44:13,619 --> 00:44:17,679 Nosotros ya cuando hemos usado antes esta expresión 932 00:44:17,679 --> 00:44:18,940 Ya hemos visto que no pasa nada 933 00:44:18,940 --> 00:44:21,659 Hemos visto de repente un operador más igual 934 00:44:21,659 --> 00:44:23,619 Ah, vale, pues esto significa 935 00:44:23,619 --> 00:44:25,579 Que a x 936 00:44:25,579 --> 00:44:26,619 Como yo he visto un igual 937 00:44:26,619 --> 00:44:29,500 Ojo, a x 938 00:44:29,500 --> 00:44:30,699 Le vamos a sumar el 2 939 00:44:30,699 --> 00:44:32,420 Y ahora ya se lo asignamos a x 940 00:44:32,420 --> 00:44:35,460 Y ahora ya con esa x le sumamos 3 941 00:44:35,460 --> 00:44:37,099 Luego le quitamos lo que valiera y 942 00:44:37,099 --> 00:44:39,179 Y luego le quitamos lo que valiera 6 943 00:44:39,179 --> 00:44:39,960 ¿Vale? 944 00:44:44,400 --> 00:44:44,840 Vale 945 00:44:44,840 --> 00:44:47,059 entonces, pues esto es lo mismo 946 00:44:47,059 --> 00:44:49,079 que si usamos esto 947 00:44:49,079 --> 00:44:50,219 exactamente igual 948 00:44:50,219 --> 00:44:52,860 pero 949 00:44:52,860 --> 00:44:54,739 sí, pero me refiero que la idea es la misma 950 00:44:54,739 --> 00:44:57,039 aquí yo automáticamente veo 951 00:44:57,039 --> 00:44:58,980 que a x tengo que asignarle algo 952 00:44:58,980 --> 00:45:01,099 que tengo que asignarle 953 00:45:01,099 --> 00:45:03,039 algo, ¿vale? porque esto 954 00:45:03,039 --> 00:45:04,940 es igual, como si hubiera 955 00:45:04,940 --> 00:45:06,420 puesto x más igual 1 956 00:45:06,420 --> 00:45:09,039 ¿verdad? es lo mismo, como si hubiera 957 00:45:09,039 --> 00:45:10,139 puesto x más igual 1 958 00:45:10,139 --> 00:45:13,019 vale, pero aquí sí que hay 959 00:45:13,019 --> 00:45:15,079 un matiz, aquí sí que 960 00:45:15,079 --> 00:45:16,099 hay un matiz importante 961 00:45:16,099 --> 00:45:19,019 con el x más y bueno ya sabemos cómo funciona 962 00:45:19,019 --> 00:45:21,039 al x yo le sumaría un 1 963 00:45:21,039 --> 00:45:23,159 ese valor se lo doy a x y sigo operando 964 00:45:23,159 --> 00:45:25,019 vale, pero yo 965 00:45:25,019 --> 00:45:26,199 pongo el x más más 966 00:45:26,199 --> 00:45:30,980 este sumar 1 y asignarlo a x 967 00:45:30,980 --> 00:45:32,400 se hace después 968 00:45:32,400 --> 00:45:34,780 de haber usado el valor de x 969 00:45:34,780 --> 00:45:39,019 porque este operador más más 970 00:45:39,019 --> 00:45:40,280 en realidad se llama 971 00:45:40,280 --> 00:45:42,500 post incremento 972 00:45:42,500 --> 00:45:44,679 ahora después del cambio 973 00:45:44,679 --> 00:45:46,559 lo revisamos, justo 974 00:45:46,559 --> 00:45:48,460 eso 975 00:45:48,460 --> 00:45:50,800 tú de repente ves una expresión 976 00:45:50,800 --> 00:45:52,300 con variables, números variables 977 00:45:52,300 --> 00:45:53,860 y resulta que una de ellas 978 00:45:53,860 --> 00:45:56,619 o dos, como por ejemplo esta, que lo tenía antes puesto 979 00:45:56,619 --> 00:45:57,860 tiene el operador 980 00:45:57,860 --> 00:46:00,039 un segundo, tiene el operador, tú ves que tiene el operador 981 00:46:00,039 --> 00:46:02,599 vale, te olvidas de 982 00:46:02,599 --> 00:46:04,599 me olvido de este 983 00:46:04,599 --> 00:46:05,579 me olvido de este 984 00:46:05,579 --> 00:46:08,699 hago la expresión como si no existieran 985 00:46:08,699 --> 00:46:11,159 vale, hago la expresión como si no existieran 986 00:46:11,159 --> 00:46:14,059 como si no existieran, así 987 00:46:14,059 --> 00:46:33,920 Y una vez que ya he hecho la expresión, he dado el valor en este caso a x, etc. Una vez que yo ya he hecho la expresión, esta de aquí, ahora ya como paso final, la máquina virtual hará el sumar uno a este y hará el restar uno a este. 988 00:46:33,920 --> 00:46:35,059 Como paso final 989 00:46:35,059 --> 00:46:38,159 Después de haber evaluado la expresión 990 00:46:38,159 --> 00:46:39,639 Como si esto no existiera 991 00:46:39,639 --> 00:46:41,820 ¿Vale? Por eso se llama 992 00:46:41,820 --> 00:46:43,619 Post incremento 993 00:46:43,619 --> 00:46:45,059 Porque incrementa después 994 00:46:45,059 --> 00:46:46,659 Incrementa después 995 00:46:46,659 --> 00:46:49,739 ¿Vale? Incrementa después 996 00:46:49,739 --> 00:46:53,400 Vale 997 00:46:53,400 --> 00:46:55,480 Que queremos que incremente antes 998 00:46:55,480 --> 00:46:57,960 Porque nos apetece a nosotros que primero 999 00:46:57,960 --> 00:47:00,360 Incremente o primero decremente 1000 00:47:00,360 --> 00:47:01,179 Y luego lo haga 1001 00:47:01,179 --> 00:47:03,159 Lo ponemos delante 1002 00:47:03,159 --> 00:47:09,840 ¿Vale? 1003 00:47:10,000 --> 00:47:12,699 Que yo quiero cambiar el funcionamiento 1004 00:47:12,699 --> 00:47:16,000 Pues lo haces con el más igual, ¿no? 1005 00:47:16,360 --> 00:47:18,579 No, lo pongo antes 1006 00:47:18,579 --> 00:47:21,179 Más más X 1007 00:47:21,179 --> 00:47:23,039 Eso, lo pongo antes 1008 00:47:23,039 --> 00:47:24,980 Y ahí sí que te lo asigna primero 1009 00:47:24,980 --> 00:47:27,139 Y ahí, cuando yo veo este operador 1010 00:47:27,139 --> 00:47:28,920 Que es el predecremento 1011 00:47:28,920 --> 00:47:29,900 Que va justo antes 1012 00:47:29,900 --> 00:47:31,559 ¿Qué hago? Primero 1013 00:47:31,559 --> 00:47:33,300 Hago la operación 1014 00:47:33,300 --> 00:47:35,659 Y me voy a todos los que tengan 1015 00:47:35,659 --> 00:47:37,920 Predecremento, hago la operación 1016 00:47:37,920 --> 00:47:40,579 Y una vez que la x se ha decrementado 1017 00:47:40,579 --> 00:47:42,059 Y una vez que la y se ha decrementado 1018 00:47:42,059 --> 00:47:44,199 Ya evalúo la expresión con esos valores 1019 00:47:44,199 --> 00:47:46,760 Decrementados, y el valor resultante va a la x 1020 00:47:46,760 --> 00:47:48,039 ¿Vale? 1021 00:47:49,059 --> 00:47:50,019 Claro, entonces 1022 00:47:50,019 --> 00:47:51,739 Este operador 1023 00:47:51,739 --> 00:47:54,500 El más más menos menos 1024 00:47:54,500 --> 00:47:56,260 Pues uno lo pone después 1025 00:47:56,260 --> 00:47:58,460 Lo pone delante en función del efecto que quiera conseguir 1026 00:47:58,460 --> 00:47:59,420 Como quiera usarlo, etc 1027 00:47:59,420 --> 00:48:02,300 Pero aunque vaya dentro de un paréntesis lo hace después 1028 00:48:02,300 --> 00:48:04,159 Después de haber acabado 1029 00:48:04,159 --> 00:48:07,309 Claro, si esto fuera 1030 00:48:07,309 --> 00:48:10,590 Así por ejemplo 1031 00:48:10,590 --> 00:48:23,139 No, no, es que 1032 00:48:23,139 --> 00:48:25,519 Es igual, claro 1033 00:48:25,519 --> 00:48:26,880 Si tú pones el paréntesis 1034 00:48:26,880 --> 00:48:29,159 Él va a evaluar esta expresión 1035 00:48:29,159 --> 00:48:32,019 Entonces, va a evaluar la expresión 1036 00:48:32,019 --> 00:48:33,199 X más 3 1037 00:48:33,199 --> 00:48:35,159 Y una vez que ha terminado de evaluar la expresión 1038 00:48:35,159 --> 00:48:37,019 Hace la suma 1039 00:48:37,019 --> 00:48:38,360 De este 1040 00:48:38,360 --> 00:48:40,360 La expresión completa, primero hace 1041 00:48:40,360 --> 00:48:43,320 El x más 3, luego hace el menos y 1042 00:48:43,320 --> 00:48:45,059 Menos 6 y luego ya hace el más 1043 00:48:45,059 --> 00:48:46,780 Exacto, claro 1044 00:48:46,780 --> 00:48:48,800 Aunque esté dentro del paréntesis 1045 00:48:48,800 --> 00:48:51,380 Al posincremento 1046 00:48:51,380 --> 00:48:52,239 No incluye el paréntesis 1047 00:48:52,239 --> 00:48:55,099 No al posincremento 1048 00:48:55,099 --> 00:48:56,780 Claro, después de haberla usado 1049 00:48:56,780 --> 00:48:59,019 El posincremento lo hace después de que 1050 00:48:59,019 --> 00:49:01,119 La ha usado para evaluar la expresión 1051 00:49:01,119 --> 00:49:03,280 En la que está involucrada, después de usarla 1052 00:49:03,280 --> 00:49:04,760 Hace el más más 1053 00:49:04,760 --> 00:49:06,980 ¿Vale? Porque podría haber otro 1054 00:49:06,980 --> 00:49:07,800 Más, más por aquí 1055 00:49:07,800 --> 00:49:10,639 Más x, más, más 1056 00:49:10,639 --> 00:49:15,590 ¿Vale? Entonces 1057 00:49:15,590 --> 00:49:18,170 Esto, de nuevo complicaría las cosas 1058 00:49:18,170 --> 00:49:20,210 Evaluaría esta expresión 1059 00:49:20,210 --> 00:49:21,309 x más 3 1060 00:49:21,309 --> 00:49:22,670 A x le suma 1 1061 00:49:22,670 --> 00:49:25,389 ¿Vale? Entonces 1062 00:49:25,389 --> 00:49:27,869 Ahora aquí, para evaluar esto 1063 00:49:27,869 --> 00:49:29,489 Tendría el x con 1064 00:49:29,489 --> 00:49:30,929 Ya el 1 sumado 1065 00:49:30,929 --> 00:49:33,570 Y luego lo vuelve a dejar incrementado otra vez 1066 00:49:33,570 --> 00:49:35,329 En los dos finales sería como haberle sumado 2 1067 00:49:35,329 --> 00:49:36,309 ¿Vale? 1068 00:49:37,610 --> 00:49:39,570 Toda la operación lo hace cuando termina su paréntesis. 1069 00:49:40,829 --> 00:49:41,070 Eso. 1070 00:49:41,869 --> 00:49:47,409 Como el más igual de aquí, que, bueno, no sé dónde estaba la expresión, 1071 00:49:47,510 --> 00:49:50,050 que lo iba haciendo según acaba la evaluación, ¿vale? 1072 00:49:50,650 --> 00:49:52,909 Entonces, de esa manera, pues, bueno, uno puede complicar, 1073 00:49:52,969 --> 00:49:56,010 hacer expresiones muy complicadas, pero la idea es que las cosas estén claras. 1074 00:49:56,570 --> 00:50:01,010 Que uno, mejor que lo deje en líneas separadas antes que dejar una expresión 1075 00:50:01,010 --> 00:50:03,110 que no también demos muy claro que puede surgir. 1076 00:50:03,110 --> 00:50:06,030 Porque de ahí nos puede salir un efecto secundario extraño, ¿vale? 1077 00:50:06,030 --> 00:50:08,550 vale, vamos a parar aquí un momentito