1 00:00:00,300 --> 00:00:09,980 Voy a grabar esta clase, por lo tanto, si habláis, pues me dais el consentimiento para que os grabe. 2 00:00:09,980 --> 00:00:13,759 Vamos a ver una segunda tanda de Java básico, ¿vale? 3 00:00:13,759 --> 00:00:20,160 Una segunda parte de Java básico que añadirá algunas cosillas a lo que ya hemos visto. 4 00:00:21,199 --> 00:00:23,140 Empezamos con constantes. 5 00:00:23,679 --> 00:00:25,820 Vosotros habéis visto variables, ¿vale? 6 00:00:25,820 --> 00:00:34,899 Las variables que son, son trocitos de memoria donde guardo un valor y ese valor lo dejo allí dentro y este valor puede ser modificable. 7 00:00:35,060 --> 00:00:43,820 En algún momento de mi ejercicio, de mi programa, pues puedo acceder a ese trozo de memoria y cambiar el valor que contiene. 8 00:00:44,579 --> 00:00:45,479 ¿Vale? Esas son las variables. 9 00:00:46,219 --> 00:00:54,500 Podría darse el caso que en algunas circunstancias yo quiera crear un trozo de memoria donde guardo un valor, 10 00:00:54,500 --> 00:01:00,899 Pero este valor quiero que no se pueda cambiar nunca jamás en el resto de mi programa 11 00:01:00,899 --> 00:01:06,400 Pues esa variable que no puede cambiarse, pues sea más constante 12 00:01:06,400 --> 00:01:09,200 Un ejemplo puede ser el número pi 13 00:01:09,200 --> 00:01:17,079 Si yo uso pi para hacer los cálculos matemáticos de círculos y cosas por el estilo 14 00:01:17,079 --> 00:01:18,920 De cálculo de área del círculo, etc. 15 00:01:18,920 --> 00:01:23,120 Lo que podría hacer es crearme al principio una variable 16 00:01:23,120 --> 00:01:27,640 Entre comillas, que tenga dentro 3,14 y no sé qué viene más 17 00:01:27,640 --> 00:01:29,599 Y luego para el resto de mi programa 18 00:01:29,599 --> 00:01:32,760 En vez de escribir siempre 3,14, 3,14 19 00:01:32,760 --> 00:01:34,859 Pues uso pi como variable 20 00:01:34,859 --> 00:01:38,379 Pero no quiero que se cambie porque pi no varía 21 00:01:38,379 --> 00:01:40,200 Pues no creo, ¿vale? 22 00:01:40,840 --> 00:01:43,359 Entonces en vez de declararlo como variable 23 00:01:43,359 --> 00:01:45,120 Podría declararlo como constante 24 00:01:45,120 --> 00:01:47,120 ¿Cómo se declara una constante? 25 00:01:47,120 --> 00:01:48,959 igual que una variable 26 00:01:48,959 --> 00:01:51,159 lo único es que se pone 27 00:01:51,159 --> 00:01:52,859 delante la palabra 28 00:01:52,859 --> 00:01:54,260 reservada final 29 00:01:54,260 --> 00:01:55,500 ¿vale? 30 00:01:56,120 --> 00:01:57,620 final, int 31 00:01:57,620 --> 00:02:01,040 edad es igual a 13 32 00:02:01,040 --> 00:02:02,459 quiere decir que 33 00:02:02,459 --> 00:02:04,519 ese es un valor que se llama edad 34 00:02:04,519 --> 00:02:06,719 que tiene dentro 13 35 00:02:06,719 --> 00:02:09,060 y no puedo hacer en ningún lado 36 00:02:09,060 --> 00:02:10,400 edad igual a 14 37 00:02:10,400 --> 00:02:12,180 me va a dar un error 38 00:02:12,180 --> 00:02:13,699 ¿si? 39 00:02:14,439 --> 00:02:16,460 por ejemplo, esta cosa aquí 40 00:02:16,460 --> 00:02:18,840 final double p 41 00:02:18,840 --> 00:02:21,300 es igual a 3,1415 42 00:02:21,300 --> 00:02:21,900 bla bla bla 43 00:02:21,900 --> 00:02:25,039 ahora yo no tengo que escribir esto cada vez 44 00:02:25,039 --> 00:02:26,340 solo escribo pi 45 00:02:26,340 --> 00:02:28,719 o 46 00:02:28,719 --> 00:02:30,979 final int max usuarios 47 00:02:30,979 --> 00:02:32,939 es igual a 300 que define que 48 00:02:32,939 --> 00:02:34,939 en mi sistema 49 00:02:34,939 --> 00:02:37,060 el número máximo de usuarios es 300 50 00:02:37,060 --> 00:02:38,800 ¿qué querrá decir? no lo sé 51 00:02:38,800 --> 00:02:41,120 depende de mi sistema, pero si yo voy añadiendo 52 00:02:41,120 --> 00:02:42,599 usuarios y de repente 53 00:02:42,599 --> 00:02:45,199 tengo que añadir el usuario número 301 54 00:02:45,199 --> 00:02:47,139 Me debería decir no 55 00:02:47,139 --> 00:02:49,400 Ya he alcanzado el número máximo de usuarios 56 00:02:49,400 --> 00:02:52,900 Eso depende de mí de programador 57 00:02:52,900 --> 00:02:57,599 ¿Notáis algo en términos de sintaxis 58 00:02:57,599 --> 00:03:00,000 De cómo se escriben las cosas con respecto a las variables? 59 00:03:02,240 --> 00:03:03,539 La mayúscula 60 00:03:03,539 --> 00:03:07,680 Las variables se ponen todas en mayúscula 61 00:03:07,680 --> 00:03:09,780 Si yo veo un nombre de algo 62 00:03:09,780 --> 00:03:11,800 Que está escrito todo en mayúscula 63 00:03:11,800 --> 00:03:13,020 Esa es una constante 64 00:03:13,020 --> 00:03:20,500 Y esto es necesario, hay que hacerlo así, si no, no funciona 65 00:03:20,500 --> 00:03:22,800 Pues no, puedes hacerlo como te da la gana 66 00:03:22,800 --> 00:03:27,659 Pero los otros programadores de Java del mundo te agradecerán 67 00:03:27,659 --> 00:03:31,280 Si tú las constantes las pones todas en mayúsculas 68 00:03:31,280 --> 00:03:37,120 Y tú agradecerás a todos los otros programadores de Java del mundo 69 00:03:37,120 --> 00:03:41,039 Porque cuando verás un nombre en mayúsculas, sabe que esa es una constante 70 00:03:41,039 --> 00:03:45,960 Una constante no puede cambiar de su valor 71 00:03:45,960 --> 00:03:49,039 El identificado de una constante suele ir todo en mayúsculas 72 00:03:49,039 --> 00:03:50,520 ¿Dudas? 73 00:03:51,740 --> 00:03:52,340 Siguiente 74 00:03:52,340 --> 00:03:55,539 Ámbito de las variables y de las constantes 75 00:03:55,539 --> 00:04:00,919 El ámbito de una variable es donde existe esta variable 76 00:04:00,919 --> 00:04:07,460 Las variables no existen siempre por todo lado 77 00:04:07,460 --> 00:04:14,740 Las variables existen solo dentro del bloque en el que se han declarado 78 00:04:14,740 --> 00:04:17,240 ¿Qué es un bloque? 79 00:04:17,819 --> 00:04:20,480 Es una llave y cerrallave 80 00:04:20,480 --> 00:04:23,439 Lo que está dentro de abrir llave y cerrallave 81 00:04:23,439 --> 00:04:25,660 Ese es un bloque, un bloque de código 82 00:04:25,660 --> 00:04:28,980 Si yo tengo abre llave, declaro unas variables 83 00:04:28,980 --> 00:04:35,660 Esas existirán hasta que este bloque se cierre 84 00:04:35,660 --> 00:04:42,759 Si voy fuera de este bloque, las variables que he declarado allí dentro dejan de existir. 85 00:04:46,129 --> 00:04:55,889 Entonces, nosotros hemos hecho, hemos creado las variables en el bloque main. 86 00:04:57,790 --> 00:05:00,149 Nosotros trabajamos todo dentro del bloque main. 87 00:05:05,550 --> 00:05:06,149 Se enfadaría. 88 00:05:06,370 --> 00:05:07,310 Por ejemplo, aquí abajo. 89 00:05:10,069 --> 00:05:11,810 Imaginaos esta cosa de aquí. 90 00:05:13,269 --> 00:05:16,069 Esto funciona, no hay problemas. 91 00:05:16,129 --> 00:05:20,370 La cosa de abajo no, ¿qué diferencia hay? 92 00:05:20,810 --> 00:05:24,189 Que veis el primer bloque va de aquí a aquí, todo es un bloque 93 00:05:24,189 --> 00:05:25,589 Y luego hay un bloque interno 94 00:05:25,589 --> 00:05:30,649 Dentro de este bloque interno, como pertenece al bloque externo 95 00:05:30,649 --> 00:05:32,649 La variable a sigue existiendo 96 00:05:32,649 --> 00:05:37,569 La variable a existe desde este símbolo de aquí, desde el principio hasta el final 97 00:05:37,569 --> 00:05:41,810 Entonces si yo dentro de aquí tengo otro bloque y le digo que b vale a 98 00:05:41,810 --> 00:05:44,189 Este a es este a 99 00:05:44,189 --> 00:05:45,509 Existe 100 00:05:45,509 --> 00:05:47,750 Ahora mira este otro en vez 101 00:05:47,750 --> 00:05:51,230 Yo estoy declarando la variable a dentro de un bloque interno 102 00:05:51,230 --> 00:05:55,569 Cuando luego fuera en el bloque externo intento utilizar a 103 00:05:55,569 --> 00:05:57,129 Esto me dará un error 104 00:05:57,129 --> 00:06:01,050 Porque la variable a ha dejado de existir 105 00:06:01,050 --> 00:06:03,550 Cuando hemos llegado a este paréntesis de aquí 106 00:06:03,550 --> 00:06:05,329 A esta llave de aquí 107 00:06:05,329 --> 00:06:07,889 A ya no existe 108 00:06:07,889 --> 00:06:10,350 Fuera de este bloque interno 109 00:06:10,350 --> 00:06:12,529 A no existe, no se ha declarado 110 00:06:12,529 --> 00:06:14,470 Te diría a no se ha declarado 111 00:06:14,470 --> 00:06:15,990 Te diría él 112 00:06:15,990 --> 00:06:18,509 Cannot resolve symbol 113 00:06:18,509 --> 00:06:21,149 Y ahora 114 00:06:21,149 --> 00:06:22,389 Esto tiene poco sentido 115 00:06:22,389 --> 00:06:25,290 Dentro de un rato cuando veremos if 116 00:06:25,290 --> 00:06:26,990 Cuando veremos while y cosas por el estilo 117 00:06:26,990 --> 00:06:29,430 Que cada if que daremos y luego abriremos un bloque 118 00:06:29,430 --> 00:06:31,250 Allí tendrá un poquito más de sentido 119 00:06:31,250 --> 00:06:33,149 Pero lo que tenéis que quedaros 120 00:06:33,149 --> 00:06:34,970 Y recordaros es que hay 121 00:06:34,970 --> 00:06:36,730 Un ámbito de las variables 122 00:06:36,730 --> 00:06:39,370 Hay un lugar de existencia de las variables 123 00:06:39,370 --> 00:06:40,990 Las variables no existen por todo lado 124 00:06:40,990 --> 00:06:43,990 Si no existen solo dentro del bloque 125 00:06:43,990 --> 00:06:45,790 Donde se han declarado 126 00:06:45,790 --> 00:06:48,350 ¿Sí? 127 00:06:48,829 --> 00:06:51,709 Está claro también que dentro del mismo bloque 128 00:06:51,709 --> 00:06:54,569 No puedo crear dos variables 129 00:06:54,569 --> 00:06:55,910 Que se llamen igual 130 00:06:55,910 --> 00:06:58,089 No puedo hacer int a 131 00:06:58,089 --> 00:06:59,790 Dos veces dentro del mismo bloque 132 00:06:59,790 --> 00:07:01,009 Pero en bloques distintos sí 133 00:07:01,009 --> 00:07:03,829 ¿Vale? 134 00:07:04,370 --> 00:07:07,230 Para hacer ejemplos más visuales 135 00:07:08,310 --> 00:07:12,060 Si yo aquí hago 136 00:07:12,060 --> 00:07:14,519 Int a es igual a 3 137 00:07:14,519 --> 00:07:17,160 Ahí 138 00:07:17,160 --> 00:07:21,240 e int a es igual a 4 139 00:07:21,240 --> 00:07:23,019 se va a enfadar 140 00:07:23,019 --> 00:07:25,680 me dice, mira que a ya existe 141 00:07:25,680 --> 00:07:28,120 duplicate local variable a 142 00:07:28,120 --> 00:07:30,519 pero si yo digo 143 00:07:30,519 --> 00:07:36,779 ningún problema 144 00:07:36,779 --> 00:07:39,560 he creado esta variable a 145 00:07:39,560 --> 00:07:42,259 que ha llegado aquí 146 00:07:42,259 --> 00:07:44,100 ha dejado de existir 147 00:07:44,100 --> 00:07:46,259 entonces declararla otra vez 148 00:07:46,259 --> 00:07:47,120 no es un problema 149 00:07:47,120 --> 00:07:49,839 oye, cuidado, esta a no es esta a 150 00:07:49,839 --> 00:07:51,420 son dos cosas distintas 151 00:07:51,420 --> 00:07:55,699 Esta es una variable a que ha existido en este bloque 152 00:07:55,699 --> 00:07:58,879 Y que he usado aquí haciendo alguna operación con a 153 00:07:58,879 --> 00:08:03,959 Hago operaciones con a 154 00:08:03,959 --> 00:08:07,600 Pero no es la misma a que uso aquí 155 00:08:07,600 --> 00:08:09,480 Cuando ha llegado aquí 156 00:08:09,480 --> 00:08:17,100 La a declarada aquí ha desaparecido 157 00:08:17,100 --> 00:08:21,399 Y entonces puedo tranquilamente utilizar otra 158 00:08:21,399 --> 00:08:26,370 Aquí no 159 00:08:26,370 --> 00:08:28,709 Porque ya existe una A 160 00:08:28,709 --> 00:08:30,709 Si yo declaro otra A 161 00:08:30,709 --> 00:08:40,210 Me dicen, ay, olvídate corchete 162 00:08:40,210 --> 00:08:41,490 No hemos usado corchete 163 00:08:41,490 --> 00:08:43,370 ¿Qué es solo corchete? No existe 164 00:08:43,370 --> 00:08:47,169 Hasta ahora 165 00:08:47,169 --> 00:08:49,830 Nosotros, lo que pasa es que main 166 00:08:49,830 --> 00:08:51,330 Es un bloque de aquí a aquí 167 00:08:51,330 --> 00:08:53,490 En realidad nosotros usamos dos bloques 168 00:08:53,490 --> 00:08:55,409 Tenemos también el bloque del class 169 00:08:55,409 --> 00:08:57,690 Pero nosotros por ahora 170 00:08:57,690 --> 00:08:59,370 Trabajamos solo dentro de un bloque 171 00:08:59,370 --> 00:09:01,850 Y por ahora no hemos creado ni utilizado 172 00:09:01,850 --> 00:09:04,309 otros bloques, por lo tanto nos afecta relativamente 173 00:09:04,309 --> 00:09:06,129 cuando tendré un if 174 00:09:06,129 --> 00:09:09,210 el if pondrá aquí 175 00:09:09,210 --> 00:09:11,769 y abrirá un bloque, entonces las variables 176 00:09:11,769 --> 00:09:14,049 que creo dentro de este if no se verán fuera 177 00:09:14,049 --> 00:09:16,029 pero más adelante 178 00:09:16,029 --> 00:09:21,179 queda claro que 179 00:09:21,179 --> 00:09:23,399 las variables no existen por todo 180 00:09:23,399 --> 00:09:25,039 lado, si no existen solo 181 00:09:25,039 --> 00:09:27,220 dentro del bloque en que se han creado 182 00:09:27,220 --> 00:09:29,740 o bloques interiores 183 00:09:29,740 --> 00:09:31,399 fijaos aquí 184 00:09:31,399 --> 00:09:34,539 A no la he declarado en este bloque 185 00:09:34,539 --> 00:09:36,879 Pero es un bloque interno 186 00:09:36,879 --> 00:09:38,379 A un bloque donde se ha declarado A 187 00:09:38,379 --> 00:09:39,139 Por lo tanto existe 188 00:09:39,139 --> 00:09:42,559 Sería 189 00:09:42,559 --> 00:09:49,049 Si yo declaro A aquí 190 00:09:49,049 --> 00:09:51,129 Luego aquí hago otro bloque 191 00:09:51,129 --> 00:09:54,250 E intento aquí dentro 192 00:09:54,250 --> 00:09:55,610 Declarar otra vez A 193 00:09:55,610 --> 00:09:56,350 ¿Qué pasa? 194 00:09:59,720 --> 00:10:00,000 ¿Va a dar? 195 00:10:00,840 --> 00:10:02,159 Es otro bloque distinto 196 00:10:02,159 --> 00:10:05,059 Pero este bloque pertenece a este bloque 197 00:10:05,059 --> 00:10:07,259 Y por lo tanto A ya se ha utilizado 198 00:10:07,259 --> 00:10:09,019 ¿Sí? 199 00:10:14,850 --> 00:10:16,090 Más cosillas 200 00:10:16,090 --> 00:10:18,090 Ahí 201 00:10:18,090 --> 00:10:22,789 Si se declara un ámbito más externo 202 00:10:22,789 --> 00:10:25,529 Se podrá acceder a la misma desde un ámbito más externo 203 00:10:25,529 --> 00:10:26,350 Va, sí 204 00:10:26,350 --> 00:10:29,049 Si yo declaro 205 00:10:29,049 --> 00:10:31,950 B, por ejemplo, aquí dentro 206 00:10:31,950 --> 00:10:34,789 Fuera no lo puedo utilizar 207 00:10:34,789 --> 00:10:36,750 Porque acabado este bloque 208 00:10:36,750 --> 00:10:37,649 Pues B desaparece 209 00:10:38,730 --> 00:10:39,210 ¿Sí? 210 00:10:40,009 --> 00:10:40,250 Va 211 00:10:40,250 --> 00:10:56,590 Por ejemplo, este es un ámbito, tenemos el main, x está declarado en el main, luego creo otro bloque donde creo q, aquí dentro puedo hacer int suma es igual a x más q, tranquilamente. 212 00:10:56,590 --> 00:11:00,909 Aquí puedo utilizar tanto X como Q como suma 213 00:11:00,909 --> 00:11:03,070 No hay problema porque estoy dentro del bloque 214 00:11:03,070 --> 00:11:07,549 Cuando salgo de este bloque me queda disponible solo X 215 00:11:07,549 --> 00:11:10,610 No puedo acceder ni a suma ni a Q 216 00:11:10,610 --> 00:11:13,409 Ya no existe 217 00:11:13,409 --> 00:11:15,409 ¿Queda claro? 218 00:11:16,769 --> 00:11:17,450 ¿Dudas? 219 00:11:19,899 --> 00:11:20,279 ¿Sigo? 220 00:11:24,509 --> 00:11:26,029 Expresiones, ¿qué son las expresiones? 221 00:11:26,029 --> 00:11:28,090 Son conjuntos de token que el programa 222 00:11:28,090 --> 00:11:30,330 Podrá resolver en tiempo de ejecución 223 00:11:30,330 --> 00:11:31,450 A un valor concreto 224 00:11:31,450 --> 00:11:32,870 Es 3 más 4 225 00:11:32,870 --> 00:11:36,169 Token 3, token más 226 00:11:36,169 --> 00:11:37,470 Token 4 227 00:11:37,470 --> 00:11:39,210 En tiempo de ejecución 228 00:11:39,210 --> 00:11:41,669 El ordenador lo que hace es hacer 229 00:11:41,669 --> 00:11:43,429 3 más 4 es igual a 7 230 00:11:43,429 --> 00:11:46,129 Y usará esta expresión como si valiera 7 231 00:11:46,129 --> 00:11:49,409 Esas expresiones son 232 00:11:49,409 --> 00:11:51,409 Más simples, consisten de un literal 233 00:11:51,409 --> 00:11:54,149 O sea, 3 es una expresión 234 00:11:54,149 --> 00:11:59,269 La comilla, tres comillas, es una expresión, es un literal de tipo string. 235 00:12:00,409 --> 00:12:10,610 Y si no, son combinaciones de literales, variables, constantes y operadores. 236 00:12:11,789 --> 00:12:11,909 ¿Sí? 237 00:12:12,350 --> 00:12:13,029 Ejemplos. 238 00:12:13,870 --> 00:12:15,990 Todas estas son expresiones, ¿vale? 239 00:12:17,289 --> 00:12:19,110 Dos más tres es una expresión. 240 00:12:19,830 --> 00:12:21,389 Tres por saldo es una expresión. 241 00:12:21,389 --> 00:12:23,529 Dos más incentivo es una expresión. 242 00:12:23,529 --> 00:12:28,389 paréntesis, paréntesis, saldo, dividido por 2, paréntesis, más 1000, paréntesis, módulo 10 243 00:12:28,389 --> 00:12:29,350 es una expresión 244 00:12:29,350 --> 00:12:33,490 yo la escribo así, a tiempo de ejecución, cuando lanzo el programa 245 00:12:33,490 --> 00:12:38,169 el programa mirará cuánto vale saldo, sacará de la memoria el valor de saldo 246 00:12:38,169 --> 00:12:40,350 hace todas las operaciones, saca un valor 247 00:12:40,350 --> 00:12:43,029 y ahora esta expresión está evaluada en este valor 248 00:12:43,029 --> 00:12:46,830 ¿sé cuánto vale el valor en tiempo de compilación? 249 00:12:46,830 --> 00:12:49,309 no, porque no sé cuánto valdrá saldo 250 00:12:49,309 --> 00:12:52,429 es una variable, a lo mejor se lee de teclado 251 00:12:52,429 --> 00:12:59,090 Pero al tiempo de ejecución, cuando le toca evaluar esta expresión 252 00:12:59,090 --> 00:13:01,909 Él irá a mirar saldo, cuánto vale en ese momento 253 00:13:01,909 --> 00:13:04,789 Y sacará el valor total de esa expresión 254 00:13:04,789 --> 00:13:10,950 Los operadores son los símbolos que me permiten hacer algún tipo de operación 255 00:13:10,950 --> 00:13:15,169 Que pueden ser aritmética, pueden ser lógica, pueden ser de byte 256 00:13:15,169 --> 00:13:19,809 Pueden ser de varias cosas, ahora veremos algunos operadores 257 00:13:19,809 --> 00:13:27,809 Y permiten combinar variables para crear expresiones más complejas 258 00:13:28,850 --> 00:13:33,429 El operador de agrupación es la paréntesis 259 00:13:33,429 --> 00:13:36,549 La hemos usado ya alguna vez 260 00:13:36,549 --> 00:13:40,710 Si yo hago esto, me hará antes 2 más 3 261 00:13:40,710 --> 00:13:43,970 Y luego el resultado de 2 más 3 lo multiplicará por 5 262 00:13:43,970 --> 00:13:46,509 Sirve para desambiguar 263 00:13:46,509 --> 00:14:07,519 Pensad esto sin paréntesis, 2 más 3 por 5, ¿vale? Normalmente nosotros hemos aprendido desde la matemática de, no sé, de cuando se ve, de primaria, final de primaria o si no, de la ESO, que antes se hace multiplicación y división y luego se hacen las sumas. 264 00:14:07,519 --> 00:14:17,179 ¿Pero por qué? Porque no se lo han dicho como regla. También el Java tiene sus reglas, tiene su prioridad de las operaciones. 265 00:14:17,720 --> 00:14:27,480 Entonces, si yo pongo las operaciones al azar así, sin paréntesis, o me sé muy bien cuál es el orden de prioridad con que se van a evaluar las operaciones, 266 00:14:27,480 --> 00:14:29,539 y por lo tanto escribo lo que yo quiero 267 00:14:29,539 --> 00:14:31,759 o si no me pongo a poner paréntesis 268 00:14:31,759 --> 00:14:33,659 es decir que 269 00:14:33,659 --> 00:14:34,799 tenéis que saber esto 270 00:14:34,799 --> 00:14:37,639 esto son todas las 271 00:14:37,639 --> 00:14:39,039 operaciones, los operadores 272 00:14:39,039 --> 00:14:41,720 y el orden con que se ejecutan 273 00:14:41,720 --> 00:14:43,740 si no os queréis 274 00:14:43,740 --> 00:14:45,600 aprender esto, usad paréntesis 275 00:14:45,600 --> 00:14:50,720 vale, vuelvo aquí 276 00:14:50,720 --> 00:14:53,039 operación de agrupación, me dice 277 00:14:53,039 --> 00:14:55,419 esta paréntesis de aquí, lo que hay dentro 278 00:14:55,419 --> 00:14:57,440 se evalúa antes, cuando se ha evaluado esto 279 00:14:57,440 --> 00:14:58,820 se evalúa lo que está afuera 280 00:14:58,820 --> 00:15:06,960 Voy rapidito porque estas son cosas que más o menos ya he visto en bachillerato o por algún lado 281 00:15:06,960 --> 00:15:09,259 Si tenéis dudas levantad la mano 282 00:15:09,259 --> 00:15:14,320 Clasificación de operadores, por el número de expresiones que requiere 283 00:15:14,320 --> 00:15:20,580 Existen tres tipos de operadores dependiendo de cuántas expresiones requieren 284 00:15:20,580 --> 00:15:22,919 Hay operadores unarios 285 00:15:22,919 --> 00:15:27,039 Operadores unarios necesitan una sola expresión 286 00:15:27,039 --> 00:15:39,159 Por ejemplo, el menos. El operador menos uno requiere una expresión, la expresión es uno, y el operador te dice, cámbiale el signo, ¿sí? 287 00:15:40,039 --> 00:15:56,120 Podría ser la operación operador interresultado es igual a operador menos, y aquí pongo la expresión que me da la gana. 288 00:15:56,120 --> 00:16:05,919 Por ejemplo, a más 7 por 4 más a por a. 289 00:16:07,299 --> 00:16:16,779 Este operador de aquí pilla una expresión y una vez que tenga el valor le cambia el signo. 290 00:16:17,759 --> 00:16:22,600 Es un operador unario, pilla una sola expresión. 291 00:16:22,600 --> 00:16:25,159 Luego están binarios. 292 00:16:26,120 --> 00:16:34,809 que son los más comunes, a más 4, 3, 2. 293 00:16:37,500 --> 00:16:44,220 El operador más es binario porque pilla una expresión y otra expresión. 294 00:16:46,019 --> 00:16:47,240 Lo podría hacer así. 295 00:16:54,100 --> 00:17:01,200 Este de aquí es binario porque pilla esta expresión y esta expresión, y la suma. 296 00:17:01,200 --> 00:17:07,319 Operador de suma, resta, multiplicación, división, módulo 297 00:17:07,319 --> 00:17:08,579 Son todos binarios 298 00:17:08,579 --> 00:17:11,779 ¿Dudas? 299 00:17:12,440 --> 00:17:15,220 Y luego está una cosa nueva, que es el operador ternario 300 00:17:15,220 --> 00:17:23,259 El operador ternario pilla tres expresiones 301 00:17:23,259 --> 00:17:26,839 Una, dos y tres 302 00:17:26,839 --> 00:17:29,519 Y esto no lo habéis visto en vuestra vida 303 00:17:29,519 --> 00:17:33,680 Y esto es algo parecido a un if 304 00:17:33,680 --> 00:17:36,640 Pero no es un if, es un operador 305 00:17:36,640 --> 00:17:40,640 Si vosotros en vuestra vida habéis visto un if 306 00:17:40,640 --> 00:17:41,759 Sabéis programar 307 00:17:41,759 --> 00:17:44,200 Pues esto sonará de alguna forma 308 00:17:44,200 --> 00:17:46,579 Pero es menos potente que un if 309 00:17:46,579 --> 00:17:48,839 Un if puede hacer esto y mucho más 310 00:17:48,839 --> 00:17:51,839 Mientras que el operador puede hacer solo esta cosa 311 00:17:51,839 --> 00:17:57,180 El operador ternario pilla tres expresiones 312 00:17:57,180 --> 00:17:59,619 La primera es una expresión booleana 313 00:17:59,619 --> 00:18:01,180 ¿Qué quiere decir una expresión booleana? 314 00:18:02,259 --> 00:18:05,789 Que el resultado será o true o false 315 00:18:05,789 --> 00:18:09,789 Si esto que le he puesto aquí es true 316 00:18:09,789 --> 00:18:13,329 Entonces todo el operador vale esto 317 00:18:13,329 --> 00:18:18,440 Si lo que le he puesto aquí vale false 318 00:18:18,440 --> 00:18:21,039 Todo el operador vale esto 319 00:18:21,039 --> 00:18:26,559 Y ahora haremos ejemplo 320 00:18:26,559 --> 00:18:29,279 ¿Sí? 321 00:18:31,460 --> 00:18:32,619 Es como una pregunta 322 00:18:32,619 --> 00:18:34,000 Esto es así 323 00:18:34,000 --> 00:18:36,579 Si sí, entonces esta cosa aquí 324 00:18:36,579 --> 00:18:38,400 Y si no, esta cosa aquí 325 00:18:38,400 --> 00:18:39,400 Punto y coma 326 00:18:39,400 --> 00:18:41,759 ¿Vale? 327 00:18:41,759 --> 00:18:49,279 Pero el if te permite hacer instrucciones 328 00:18:49,279 --> 00:18:51,319 Mientras esta no es una instrucción 329 00:18:51,319 --> 00:18:53,099 Estas son valores 330 00:18:53,099 --> 00:18:55,119 Es una expresión 331 00:18:55,119 --> 00:18:57,200 Es al final, yo estar aquí 332 00:18:57,200 --> 00:18:59,059 Me tiene que valer algo concreto 333 00:18:59,059 --> 00:19:01,259 Esto vale 3,4 334 00:19:01,259 --> 00:19:02,440 O vale 4,7 335 00:19:02,440 --> 00:19:03,619 Dependiendo de num 336 00:19:03,619 --> 00:19:05,559 Y de su comparación con 3 337 00:19:05,559 --> 00:19:08,579 Pero no le puede hacer imprime en pantalla 338 00:19:08,579 --> 00:19:15,839 Que quiere decir el if abarca todo 339 00:19:15,839 --> 00:19:20,869 En el if puedes hacer esto 340 00:19:20,869 --> 00:19:22,869 Pero puedes hacer también escribirla en pantalla 341 00:19:22,869 --> 00:19:26,210 Este no, porque escribir en pantalla no es una expresión 342 00:19:26,210 --> 00:19:28,089 Es una instrucción 343 00:19:28,089 --> 00:19:30,329 Entonces no es exactamente un if 344 00:19:30,329 --> 00:19:32,549 Pero nosotros lo usaremos casi como if 345 00:19:32,549 --> 00:19:34,029 Para los primeros ejercicios 346 00:19:34,029 --> 00:19:39,349 También en vez de clasificar los operadores 347 00:19:39,349 --> 00:19:42,009 Por cuantas expresiones requieren 348 00:19:42,009 --> 00:19:43,670 Entonces un ario, binario, eternario 349 00:19:43,670 --> 00:19:46,109 Los puede hacer en base a 350 00:19:46,109 --> 00:19:51,410 Que posición tiene con respecto a la expresión 351 00:19:51,410 --> 00:19:56,730 Prefijo es un operador que se pone antes de la expresión 352 00:19:56,730 --> 00:19:58,309 Como por ejemplo, más más saldo 353 00:19:58,309 --> 00:20:00,569 O menos menos intereses 354 00:20:00,569 --> 00:20:03,910 Postfijo se pone después 355 00:20:03,910 --> 00:20:05,849 Como por ejemplo, beneficio más más 356 00:20:05,849 --> 00:20:09,450 Y infijo es cuando está entre medias 357 00:20:09,450 --> 00:20:10,549 Como por ejemplo, A más B 358 00:20:10,549 --> 00:20:12,569 ¿Sí? 359 00:20:12,869 --> 00:20:14,190 Esto lo veremos muy poco 360 00:20:14,190 --> 00:20:16,650 Pero esto sí lo veremos mucho 361 00:20:16,650 --> 00:20:18,410 ¿Sí? 362 00:20:18,589 --> 00:20:19,430 Y esto también 363 00:20:19,430 --> 00:20:20,410 ¿Sí? 364 00:20:20,410 --> 00:20:24,529 Sí, ahora hacemos ejemplo 365 00:20:24,529 --> 00:20:28,230 Pero la idea del ternario es que tengo tres expresiones 366 00:20:28,230 --> 00:20:31,130 Una, dos y tres 367 00:20:31,130 --> 00:20:38,299 Entonces, si esta es verdadera, todo esto vale esto 368 00:20:38,299 --> 00:20:44,900 Si esta es falsa, todo esto vale esto 369 00:20:44,900 --> 00:20:50,180 Y ahora hacemos un par de ejemplos o ejercicios y vemos cómo es 370 00:20:50,180 --> 00:20:57,059 Vamos a hacer ejemplos antes de meternos a este de aquí 371 00:20:57,059 --> 00:21:00,099 Entonces, por ejemplo 372 00:21:00,099 --> 00:21:06,019 Voy a crear una nueva 373 00:21:06,019 --> 00:21:15,849 Para hacer ejemplos 374 00:21:15,849 --> 00:21:32,309 Vamos a hacer un poco de ejemplos sobre todo de este ternario 375 00:21:32,309 --> 00:21:34,329 Que es el que es un poquito más nuevo 376 00:21:34,329 --> 00:21:38,049 Por ejemplo, yo tengo un entero 377 00:21:38,049 --> 00:21:40,089 Int A es igual a 3 378 00:21:40,089 --> 00:21:42,890 Tengo otro entero 379 00:21:42,890 --> 00:21:44,410 Int B es igual a 7 380 00:21:44,410 --> 00:21:45,109 A 6 381 00:21:45,109 --> 00:21:48,829 Y ahora digo que 382 00:21:48,829 --> 00:21:50,809 El entero C 383 00:21:50,809 --> 00:21:52,589 Es igual a 384 00:21:52,589 --> 00:21:57,059 Si A es menor que B 385 00:21:57,059 --> 00:22:02,059 Entonces C valdrá 0 386 00:22:02,059 --> 00:22:05,599 Si no 387 00:22:05,599 --> 00:22:07,500 10 388 00:22:07,500 --> 00:22:11,259 ¿Cuánto vale C? 389 00:22:11,660 --> 00:22:16,440 0 390 00:22:16,440 --> 00:22:18,599 Vamos a verlo 391 00:22:18,599 --> 00:22:30,890 Si eso, C vale 0. 392 00:22:32,630 --> 00:22:36,630 Ahora, ¿qué pasa si yo le digo, oye, A vale 8? 393 00:22:49,130 --> 00:22:49,289 ¿Sí? 394 00:22:49,750 --> 00:22:51,890 Ahora vamos a darle un poquito de sentido. 395 00:22:55,680 --> 00:23:00,200 Int nota es igual a scan.nextInt. 396 00:23:00,200 --> 00:23:08,960 Si eso, dame tu nota. 397 00:23:11,359 --> 00:23:11,500 ¿Sí? 398 00:23:12,339 --> 00:23:12,980 Vale. 399 00:23:12,980 --> 00:23:50,990 Y ahora digo, string resultado es igual, si nota es mayor o igual a 5, vale, has aprobado, si no, has suspendido y luego imprime. 400 00:23:50,990 --> 00:23:52,670 Resultado 401 00:23:52,670 --> 00:23:55,410 ¿Qué he hecho? 402 00:24:03,619 --> 00:24:04,059 Aquí 403 00:24:04,059 --> 00:24:06,059 Esta es una expresión 404 00:24:06,059 --> 00:24:08,960 Si tú aquí pones una expresión booleana que vale true 405 00:24:08,960 --> 00:24:10,240 Pues al final vale un true 406 00:24:10,240 --> 00:24:11,940 Pero lo tendrás que guardar en un true 407 00:24:11,940 --> 00:24:12,720 ¿Por qué no? 408 00:24:21,109 --> 00:24:23,990 Si en el examen donde yo te estoy evaluando 409 00:24:23,990 --> 00:24:27,869 Si tú sabes el operador ternario 410 00:24:27,869 --> 00:24:30,369 Tú no me utilizas el operador ternario 411 00:24:30,369 --> 00:24:33,450 ¿Cuánto vas a sacar en el apartado operador ternario? 412 00:24:34,329 --> 00:24:34,690 Cero 413 00:24:34,690 --> 00:24:36,930 No obstante, funciona perfectamente 414 00:24:36,930 --> 00:24:44,309 No, voy a especificar que el próximo examen 415 00:24:44,309 --> 00:24:46,029 Es sobre lo que hemos hecho hasta ahora 416 00:24:46,029 --> 00:24:47,109 Y no hemos hecho el IF 417 00:24:47,109 --> 00:24:52,319 ¿Dudas? 418 00:24:57,650 --> 00:24:58,329 ¿Qué he hecho? 419 00:25:00,329 --> 00:25:01,250 ¿Qué hace este ejercicio? 420 00:25:08,380 --> 00:25:10,279 Es un ejercicio que me dice si ha probado o no 421 00:25:10,279 --> 00:25:10,980 ¿Vale? 422 00:25:12,240 --> 00:25:14,420 Entonces, dame la nota 423 00:25:14,420 --> 00:25:15,200 ¿Cuánto he sacado? 424 00:25:17,200 --> 00:25:17,660 ¿Seis? 425 00:25:18,339 --> 00:25:19,259 Has aprobado 426 00:25:19,259 --> 00:25:26,119 Si dice un tres 427 00:25:26,119 --> 00:25:38,420 ha suspendido. Mirámoslo bien. He leído un número, lo he puesto en nota, ¿sí? Y luego aquí me estoy 428 00:25:38,420 --> 00:25:47,019 preguntando, este operador es todo un operador entero, ¿vale? Este es todo un operador. Es un 429 00:25:47,019 --> 00:25:58,099 operador único y se basa sobre, si nota es mayor o igual que 5, entonces todo esto vale esta expresión 430 00:25:58,099 --> 00:26:08,519 de aquí. Si esto es falso, todo vale esta expresión de aquí. Por lo tanto, si me has 431 00:26:08,519 --> 00:26:15,940 dado un 7, pues como 7 es mayor que 5, pues entonces es verdadero, por lo tanto yo pillaré 432 00:26:15,940 --> 00:26:27,390 esta expresión que es la que guardo en resultado. Y luego la escribo. Si en vez de esto no es 433 00:26:27,390 --> 00:26:28,890 Verdad, pues, nota. 434 00:26:30,490 --> 00:26:33,930 ¿Puedo poner aquí un string y aquí un int? 435 00:26:34,509 --> 00:26:40,049 ¿Por qué no? 436 00:26:44,269 --> 00:26:47,529 Porque estos dos señores tienen que tener el mismo tipo. 437 00:26:48,869 --> 00:26:49,430 ¿Sí? 438 00:26:49,789 --> 00:26:52,250 Porque es verdad que dependen de esto. 439 00:26:52,710 --> 00:26:59,130 Pero al final, lo que me espero es un... 440 00:26:59,130 --> 00:27:01,869 No puedo decirle en un caso una cosa, en un caso otra. 441 00:27:01,869 --> 00:27:04,869 Cosa que a lo mejor con un if podrías lograr haciendo... 442 00:27:05,529 --> 00:27:07,809 Es un operador solo. 443 00:27:08,170 --> 00:27:23,170 Entonces, las dos string, o sea, las dos expresiones que pongo aquí, pueden ser distintas, valores distintos, complejas cuando os da la gana, pero tienen que devolver el mismo tipo. 444 00:27:24,609 --> 00:27:32,009 Si este es un string, esto también es un string. Si este es un int, esto también es un int. Y si este es un bool, pues esto también es un bool. 445 00:27:32,009 --> 00:27:42,269 Sí, pero yo 446 00:27:42,269 --> 00:27:43,829 A lo mejor no lo estoy usando aquí 447 00:27:43,829 --> 00:27:45,450 A lo mejor estoy haciendo esto 448 00:27:45,450 --> 00:27:57,019 No lo estoy guardando en ningún lado 449 00:27:57,019 --> 00:27:59,519 Pero yo me espero que 450 00:27:59,519 --> 00:28:02,200 Print pilla aquí 451 00:28:02,200 --> 00:28:03,880 Un string 452 00:28:03,880 --> 00:28:05,900 Entonces me espero que el final de esto 453 00:28:05,900 --> 00:28:07,839 Es string, si aquí le pongo 3 454 00:28:07,839 --> 00:28:09,660 A lo mejor va a hacer cosas raras 455 00:28:09,660 --> 00:28:11,039 Pues me la acepta 456 00:28:11,039 --> 00:28:12,140 ¿Por qué me la acepta? 457 00:28:14,230 --> 00:28:17,049 Porque Println acepta tanto esto como esto de aquí 458 00:28:17,049 --> 00:28:18,490 Pero no lo hagáis así 459 00:28:18,490 --> 00:28:20,049 ¿Vale? 460 00:28:20,730 --> 00:28:22,609 Así, mejor. 461 00:28:23,089 --> 00:28:23,390 Va bonito. 462 00:28:27,230 --> 00:28:28,789 Porque admite las dos cosas. 463 00:28:29,250 --> 00:28:30,190 Pero está... 464 00:28:30,190 --> 00:28:31,970 No la caes. 465 00:28:33,230 --> 00:28:35,569 Ha suspendido. 466 00:28:37,329 --> 00:28:42,230 Más bien, no luchéis contra vosotros mismos a la hora de complicar las cosas, ¿vale? 467 00:28:42,750 --> 00:28:45,730 Intentad mantener lo más sencillo. 468 00:28:46,349 --> 00:28:50,690 Esto por ahora es la cosa más compleja que hemos visto, ¿vale? 469 00:28:50,690 --> 00:28:53,529 Y será la cosa más compleja que hemos visto 470 00:28:53,529 --> 00:28:54,630 Por un ratito 471 00:28:54,630 --> 00:28:56,569 Luego llegará el if 472 00:28:56,569 --> 00:28:58,390 Y ya esto no es tan complejo 473 00:28:58,390 --> 00:29:00,730 Luego ya va el while 474 00:29:00,730 --> 00:29:03,529 Y esto es súper sencillo 475 00:29:04,410 --> 00:29:04,650 ¿Sí? 476 00:29:05,829 --> 00:29:06,569 Y de allí 477 00:29:06,569 --> 00:29:12,779 Nada, ya allí somos programadores 478 00:29:12,779 --> 00:29:14,480 ¿Dudas? 479 00:29:31,029 --> 00:29:32,829 Está haciendo una comparación entre un double 480 00:29:32,829 --> 00:29:33,490 Y un int 481 00:29:33,490 --> 00:29:36,890 De esta forma esto es un operador de mayor 482 00:29:36,890 --> 00:29:38,829 Él sabe que 5,00001 483 00:29:38,829 --> 00:29:47,230 es mayor que 5. ¿Dudas? ¿Se entiende más o menos cómo funciona esto? ¿Queréis otro 484 00:29:47,230 --> 00:30:07,500 ejemplo? ¿Otro tipo de dado? ¿Qué le hacemos? Va, lo habéis querido vosotros. Entonces, 485 00:30:07,500 --> 00:30:15,839 Entonces, dame tu nota, ¿vale? 486 00:30:16,299 --> 00:30:17,160 Esta de aquí. 487 00:30:18,059 --> 00:30:23,140 Si es estrictamente de mayor que 5, has aprobado mucho. 488 00:30:25,990 --> 00:30:51,230 Si no, si la nota es igual a 5 y has aprobado por los pelos, y si no, has suspendido. 489 00:30:51,230 --> 00:31:02,900 No, pero me da un error de bajo. 490 00:31:03,359 --> 00:31:04,559 Eso lo pillan 491 00:31:04,559 --> 00:31:06,079 Dejamos los a int 492 00:31:06,079 --> 00:31:08,859 Me da un error aquí 493 00:31:08,859 --> 00:31:09,900 ¿Qué será? 494 00:31:10,200 --> 00:31:11,259 ¿Por qué falta un paréntesis? 495 00:31:13,420 --> 00:31:14,259 ¡Voilá! 496 00:31:20,470 --> 00:31:20,650 ¿Sí? 497 00:31:21,349 --> 00:31:23,769 ¿Qué estoy haciendo? 498 00:31:27,839 --> 00:31:29,059 Complicarnos la vida 499 00:31:29,059 --> 00:31:31,779 Esto tiene tres casos 500 00:31:31,779 --> 00:31:32,660 ¿Vale? 501 00:31:33,440 --> 00:31:35,059 Primera compruebo uno 502 00:31:35,059 --> 00:31:37,960 Si esto es verdadero, entonces es esto 503 00:31:37,960 --> 00:31:38,559 ¿Vale? 504 00:31:38,640 --> 00:31:43,930 Si no, vuelvo a hacer otra comprobación 505 00:31:43,930 --> 00:31:50,809 de si es igual. Si es igual, entonces has aprobado por los pelos. Si llego aquí, quiere 506 00:31:50,809 --> 00:31:59,250 decir que no era esto, porque si no habría devuelto esta cosa aquí, y no era esto, perdón, 507 00:31:59,309 --> 00:32:03,369 no era esto, porque si no habría devuelto esta cosa aquí. Entonces es el tercer caso. 508 00:32:03,369 --> 00:32:16,400 Estoy metiendo un operador ternario dentro de un operador ternario. Hasta el infinito. 509 00:32:16,400 --> 00:32:19,769 Pero al final 510 00:32:19,769 --> 00:32:22,029 Todo esta cosa de aquí 511 00:32:22,029 --> 00:32:25,150 Tiene que devolverme 512 00:32:25,150 --> 00:32:26,410 Un string 513 00:32:26,410 --> 00:32:30,890 Yo lo puedo evaluar 514 00:32:30,890 --> 00:32:32,910 Complicado o cuanto queráis 515 00:32:32,910 --> 00:32:34,869 Pero al final esto valdrá un string 516 00:32:34,869 --> 00:32:35,809 Y lo imprimo por batalla 517 00:32:35,809 --> 00:32:39,200 Hoy se me ha borrado 518 00:32:39,200 --> 00:32:43,759 No todo está grabado 519 00:32:43,759 --> 00:32:45,440 Con otro 520 00:32:45,440 --> 00:32:49,400 En vez que un string 521 00:32:49,400 --> 00:32:51,480 Pues que queremos hacer 522 00:32:51,480 --> 00:32:52,099 Un double 523 00:32:52,099 --> 00:32:52,839 ¿Qué sé yo? 524 00:32:55,960 --> 00:32:57,319 Dame tu nota 525 00:32:57,319 --> 00:32:58,700 Dame... ¿Qué sé yo? 526 00:32:59,259 --> 00:32:59,940 No sé cómo hacer 527 00:32:59,940 --> 00:33:00,920 ¿Qué ejemplo hacer? 528 00:33:01,480 --> 00:33:02,660 Positivo y negativo 529 00:33:02,660 --> 00:33:05,880 Dame... 530 00:33:05,880 --> 00:33:09,690 No, pero siempre, siempre... 531 00:33:09,690 --> 00:33:09,930 Vale 532 00:33:09,930 --> 00:33:11,509 Dame un número 533 00:33:11,509 --> 00:33:13,410 ¿Vale? 534 00:33:13,589 --> 00:33:14,289 Leo el número 535 00:33:14,289 --> 00:33:15,250 Ahora 536 00:33:15,250 --> 00:33:18,329 Interresultado es igual a 537 00:33:18,329 --> 00:33:20,190 Si... 538 00:33:20,190 --> 00:33:21,230 Nota, bueno, num 539 00:33:21,230 --> 00:33:25,960 Si num 540 00:33:25,960 --> 00:33:29,420 es menor que cero 541 00:33:29,420 --> 00:33:32,259 entonces 542 00:33:32,259 --> 00:33:37,329 menos num, si no 543 00:33:37,329 --> 00:33:42,339 num, imprime num 544 00:33:42,339 --> 00:33:44,140 ¿qué he hecho? 545 00:33:51,170 --> 00:33:51,690 ¿qué he hecho? 546 00:33:51,690 --> 00:33:53,309 darle un título a este ejercicio 547 00:33:53,309 --> 00:34:03,670 exacto, calcula el valor absoluto de un número 548 00:34:03,670 --> 00:34:07,119 ¿a que si? 549 00:34:07,119 --> 00:34:10,380 Ahora, si os acordáis 550 00:34:10,380 --> 00:34:12,280 Que es un valor absoluto de un número 551 00:34:12,280 --> 00:34:15,380 Pero, esto 552 00:34:15,380 --> 00:34:16,519 ¿Sí? 553 00:34:18,059 --> 00:34:18,900 ¿Os ha gustado? 554 00:34:19,679 --> 00:34:21,280 ¿Estáis contentos de haber conocido 555 00:34:21,280 --> 00:34:22,780 El operador 556 00:34:22,780 --> 00:34:24,400 Ternario 557 00:34:24,400 --> 00:34:27,599 Listos a sufrir para los próximos ejercicios 558 00:34:27,599 --> 00:34:28,980 Muy bien 559 00:34:28,980 --> 00:34:30,760 Vale 560 00:34:30,760 --> 00:34:34,190 Más cosillas 561 00:34:34,190 --> 00:34:36,690 Clasificaciones, esto lo hemos hecho 562 00:34:36,690 --> 00:34:38,469 Tipos de expresiones, vale 563 00:34:38,469 --> 00:34:42,030 El tipo de datos que devuelve una expresión 564 00:34:42,030 --> 00:34:45,929 Dependerá del tipo de las expresiones involucradas 565 00:34:45,929 --> 00:34:47,849 Algo de esto ya hemos hecho 566 00:34:47,849 --> 00:34:51,050 Hemos visto que si hago intero más double 567 00:34:51,050 --> 00:34:52,309 Tengo un double 568 00:34:52,309 --> 00:34:55,730 Si hago un int más dividido 569 00:34:55,730 --> 00:34:57,269 Resultado es un int 570 00:34:57,269 --> 00:35:02,690 Hay algunas conversiones que se pueden hacer 571 00:35:02,690 --> 00:35:04,409 Que son estas de aquí 572 00:35:04,409 --> 00:35:17,449 Las conversiones automáticas o implícitas son cuando se converte desde un tipo compatible más pequeño a un tipo compatible más grande 573 00:35:17,449 --> 00:35:21,949 ¿Qué quiere decir? Es cuando tengo un float y lo guardo en un double 574 00:35:21,949 --> 00:35:27,289 Como float es más pequeño y double es más grande 575 00:35:27,289 --> 00:35:31,750 Y tanto double como float son decimales 576 00:35:31,750 --> 00:35:33,630 Por lo tanto son compatibles 577 00:35:33,630 --> 00:35:35,809 Puedo hacerlo, no hay problema 578 00:35:35,809 --> 00:35:38,230 Puedo guardar un float dentro de un double 579 00:35:38,230 --> 00:35:41,530 No puedo guardar un double dentro de un float 580 00:35:41,530 --> 00:35:42,190 ¿Por qué no? 581 00:35:43,630 --> 00:35:45,110 Porque son compatibles 582 00:35:45,110 --> 00:35:47,630 Pero no es de más pequeño a más grande 583 00:35:47,630 --> 00:35:49,010 De más grande a más pequeño 584 00:35:49,010 --> 00:35:50,070 Eso no se puede hacer 585 00:35:50,070 --> 00:35:53,750 Si yo tengo un int 586 00:35:53,750 --> 00:35:56,909 ¿Lo puedo guardar en un long? 587 00:35:58,469 --> 00:35:59,110 Sí 588 00:35:59,110 --> 00:36:01,369 Porque int son 4 bytes 589 00:36:01,369 --> 00:36:03,250 Un long son 8 bytes 590 00:36:03,250 --> 00:36:04,690 Y por lo tanto un int 591 00:36:04,690 --> 00:36:06,730 Puedo tranquilamente guardarlo en un long 592 00:36:06,730 --> 00:36:09,070 Puedo guardar un 593 00:36:09,070 --> 00:36:11,650 Int en un short 594 00:36:11,650 --> 00:36:13,960 No 595 00:36:13,960 --> 00:36:17,019 Porque int son 4, short son 2 bytes 596 00:36:17,019 --> 00:36:18,940 Por lo tanto uno más grande 597 00:36:18,940 --> 00:36:20,699 No lo puedo guardar ahí dentro 598 00:36:20,699 --> 00:36:22,159 Pero son compatibles, si 599 00:36:22,159 --> 00:36:23,340 Son enteros los dos 600 00:36:23,340 --> 00:36:25,480 Pero no lo puedo hacer 601 00:36:25,480 --> 00:36:27,880 Y estas 602 00:36:27,880 --> 00:36:30,760 Se llaman implícita o automáticas 603 00:36:30,760 --> 00:36:32,739 Porque Java te lo hace en automático 604 00:36:32,739 --> 00:36:34,179 Por ejemplo esto 605 00:36:34,179 --> 00:36:39,869 Esto no te lo debería hacer 606 00:36:39,869 --> 00:36:42,190 Esto 607 00:36:42,190 --> 00:36:43,429 Sí 608 00:36:43,429 --> 00:36:45,210 Esto debería haber una FG 609 00:36:45,210 --> 00:36:46,329 Esto lo hace 610 00:36:46,329 --> 00:36:52,519 Float 611 00:36:52,519 --> 00:36:54,559 N1 es igual a 612 00:36:54,559 --> 00:36:55,920 3.14 613 00:36:55,920 --> 00:36:57,159 Se enfada 614 00:36:57,159 --> 00:36:59,280 ¿Sí? 615 00:36:59,780 --> 00:37:00,940 Le tengo que poner una F 616 00:37:00,940 --> 00:37:03,019 ¿Sí? Ahora sí 617 00:37:03,019 --> 00:37:05,880 Y si luego hago doble 618 00:37:05,880 --> 00:37:09,159 X es igual a 619 00:37:09,159 --> 00:37:11,300 N1, sin problema 620 00:37:11,300 --> 00:37:14,760 ¿Sí? 621 00:37:15,639 --> 00:37:16,260 ¿Dudas? 622 00:37:23,219 --> 00:37:25,659 Cuanto más preciso sea, mejoré 623 00:37:25,659 --> 00:37:26,000 ¿Vale? 624 00:37:26,480 --> 00:37:34,750 En algunos programas, en lenguaje de programación 625 00:37:34,750 --> 00:37:35,650 Como por ejemplo C 626 00:37:35,650 --> 00:37:38,670 El falso 0 627 00:37:38,670 --> 00:37:40,349 Y cualquier otro número 628 00:37:40,349 --> 00:37:41,570 Es verdadero 629 00:37:41,570 --> 00:37:45,030 Entonces luego puedes hacer una conversión de booleano 630 00:37:45,030 --> 00:37:46,090 A entero 631 00:37:46,090 --> 00:37:47,869 No os aconsejo que lo hagáis 632 00:37:47,869 --> 00:37:58,789 Luego, existen la posibilidad de hacer conversiones de tipos compatibles más grandes a más pequeños. 633 00:37:58,789 --> 00:38:08,309 Pero en un cierto sentido le tienes que decir tú, oye, mira, sé que esto va a dar problemas, pero hazlo. 634 00:38:11,320 --> 00:38:13,119 Como por ejemplo, al revés. 635 00:38:15,519 --> 00:38:18,820 Antes me parecía que no me había dejado, dejadme probar. 636 00:38:18,820 --> 00:38:27,360 Y imaginaos que hago doble pi es igual a 3.14 637 00:38:27,360 --> 00:38:35,360 Y ahora le digo float pif es igual a pi 638 00:38:35,360 --> 00:38:37,440 No me va a dejar 639 00:38:37,440 --> 00:38:38,800 ¿Vale? 640 00:38:38,940 --> 00:38:40,139 Pero si yo le digo 641 00:38:40,139 --> 00:38:41,780 No, espera 642 00:38:41,780 --> 00:38:43,539 Que me doy cuenta 643 00:38:43,539 --> 00:38:48,760 Sé que aquí hay algún problema 644 00:38:48,760 --> 00:38:53,179 Pero confía en mí, hazlo 645 00:38:53,179 --> 00:38:57,159 Ahora, puede ser que esto cause problema 646 00:38:57,159 --> 00:39:09,039 Porque podría ser que tengo tantos números decimales 647 00:39:09,039 --> 00:39:12,800 Que un double lo puede representar, pero un flat no 648 00:39:12,800 --> 00:39:16,219 Entonces es lo que se llama pérdida de precisión 649 00:39:16,219 --> 00:39:23,780 La pérdida de precisión más grande es si tengo doble pi 650 00:39:23,780 --> 00:39:27,980 lo tenemos allí, int pi como entero 651 00:39:27,980 --> 00:39:31,559 es igual a int 652 00:39:31,559 --> 00:39:36,039 de pi, fenomenal, son tipos numéricos 653 00:39:36,039 --> 00:39:39,400 son compatibles, ahora mi pi vale 654 00:39:39,400 --> 00:39:43,800 3, y el vuestro profesor 655 00:39:43,800 --> 00:39:47,539 de matemática que os ha hecho trigonometría y cosas por el estilo, en este momento está haciendo 656 00:39:47,539 --> 00:40:00,130 ¡ah! sí, sí, no me deja hacerlo 657 00:40:00,130 --> 00:40:02,210 Porque no me deja 658 00:40:02,210 --> 00:40:05,210 Pero yo le estoy diciendo 659 00:40:05,210 --> 00:40:07,289 Sé lo que estoy haciendo 660 00:40:07,289 --> 00:40:09,230 Y a lo mejor es porque yo quiero 661 00:40:09,230 --> 00:40:10,710 Pillar la parte entera de este número 662 00:40:10,710 --> 00:40:13,570 Quiero pillar por un lado la parte entera 663 00:40:13,570 --> 00:40:15,030 Luego hago 664 00:40:15,030 --> 00:40:16,730 Doble 665 00:40:16,730 --> 00:40:19,329 Parte 666 00:40:19,329 --> 00:40:20,309 Decimal 667 00:40:20,309 --> 00:40:23,409 Es igual a pi menos pi 668 00:40:23,409 --> 00:40:26,469 Y ahora ya tengo solo la parte 669 00:40:26,469 --> 00:40:27,929 Decimal de este punto 670 00:40:27,929 --> 00:40:30,510 pillo la parte entera 671 00:40:30,510 --> 00:40:32,710 luego pillo el número, le quito la parte entera 672 00:40:32,710 --> 00:40:34,190 pues me quedo solo con la parte decimal 673 00:40:34,190 --> 00:40:38,610 ¿por qué me sirve la parte decimal para hacer no sé qué? 674 00:40:39,829 --> 00:40:39,969 ¿sí? 675 00:40:40,429 --> 00:40:42,469 entonces, esto se llaman 676 00:40:42,469 --> 00:40:44,889 casting explícitos 677 00:40:44,889 --> 00:40:46,929 o conversiones explícitas 678 00:40:46,929 --> 00:40:49,409 si os fijáis, aquí no le estoy diciendo nada 679 00:40:49,409 --> 00:40:50,349 aquí faltaría una F 680 00:40:50,349 --> 00:40:53,409 aquí no le estoy diciendo nada 681 00:40:53,409 --> 00:40:54,730 la conversión me la hace él 682 00:40:54,730 --> 00:40:57,289 aquí le tengo que decir 683 00:40:57,289 --> 00:40:59,869 explícitamente haz la conversión 684 00:40:59,869 --> 00:41:00,769 explícito 685 00:41:00,769 --> 00:41:03,630 y luego hay castings 686 00:41:03,630 --> 00:41:04,670 que no se pueden hacer 687 00:41:04,670 --> 00:41:07,630 ¿vale? no puedo hacer 688 00:41:07,630 --> 00:41:09,429 pp-n 689 00:41:09,429 --> 00:41:11,449 con n un entero 690 00:41:11,449 --> 00:41:14,010 no está definido el operador 691 00:41:14,010 --> 00:41:14,630 menos 692 00:41:14,630 --> 00:41:17,349 entre estas cosas ¿vale? 693 00:41:17,869 --> 00:41:19,889 o por ejemplo 694 00:41:19,889 --> 00:41:21,349 esta cosa aquí no la puedo hacer 695 00:41:21,349 --> 00:41:27,880 bueno, sí, pero creo que 696 00:41:27,880 --> 00:41:30,239 perdón, creo que esta no me la deja 697 00:41:30,239 --> 00:41:34,980 hacer porque no puede hacer el casting a pp-n no no tiene sentido esta me la hace 698 00:41:34,980 --> 00:41:45,679 pero pierdo dos cosas esto es interesante mirar de internet es igual a 170 vale que 699 00:41:45,679 --> 00:42:01,019 él lo hace con short o con byte, no me acuerdo, byte, byte b es igual a byte de n, a seguir 700 00:42:01,019 --> 00:42:11,840 lo dice, a seguir lo dice así, no me acuerdo, aquí byte k igual a n, vamos sin esto, no 701 00:42:11,840 --> 00:42:17,840 me deja, ¿sí? Estas no se pueden hacer, pero ¿qué pasaría si lo hago así? Y luego 702 00:42:17,840 --> 00:42:19,480 digo, si eso 703 00:42:19,480 --> 00:42:21,420 ve 704 00:42:21,420 --> 00:42:27,289 que creéis que va a hacer 705 00:42:27,289 --> 00:42:29,929 que va a hacer aquí 706 00:42:29,929 --> 00:42:32,769 vamos a verlo 707 00:42:32,769 --> 00:42:39,460 menos 86 708 00:42:39,460 --> 00:42:45,349 bytes son 256 709 00:42:45,349 --> 00:42:47,449 pero la mitad son positivos 710 00:42:47,449 --> 00:42:48,610 y la mitad son negativos 711 00:42:48,610 --> 00:42:51,369 y los negativos son los que van 712 00:42:51,369 --> 00:42:52,969 desde 128 para arriba 713 00:42:52,969 --> 00:42:55,030 entonces como he puesto 170 714 00:42:55,030 --> 00:42:57,630 pues me he pasado de 128 715 00:42:57,630 --> 00:42:59,570 y ahora me está dando los números negativos 716 00:42:59,570 --> 00:43:01,809 entonces me sale menos 36, ahora imaginaos 717 00:43:01,809 --> 00:43:03,929 que esto lo habéis hecho por error 718 00:43:03,929 --> 00:43:05,690 en algún lado de los millones 719 00:43:05,690 --> 00:43:07,869 de líneas de código que tenéis por allí 720 00:43:07,869 --> 00:43:09,650 y alguien nos dice de hacer 721 00:43:09,650 --> 00:43:12,449 una transferencia de 170 euros 722 00:43:12,449 --> 00:43:13,449 en positivo 723 00:43:13,449 --> 00:43:16,050 y vosotros le vais a quitar 86 euros 724 00:43:16,050 --> 00:43:19,059 cuidado 725 00:43:19,059 --> 00:43:21,780 cuidado estas cosas 726 00:43:21,780 --> 00:43:23,039 si te pillan 727 00:43:23,039 --> 00:43:24,659 vale 728 00:43:24,659 --> 00:43:27,619 si, entonces tres tipos 729 00:43:27,619 --> 00:43:29,679 Los tipos de expresiones 730 00:43:29,679 --> 00:43:31,719 No en el sentido que hay varios tipos de expresiones 731 00:43:31,719 --> 00:43:33,980 Sino que tipo tienen las expresiones 732 00:43:33,980 --> 00:43:36,179 Hay que calcular 733 00:43:36,179 --> 00:43:37,460 La expresión cuanto vale 734 00:43:37,460 --> 00:43:38,699 Y ver que tipo tiene 735 00:43:38,699 --> 00:43:41,960 Y luego hay conversiones que pueden ser implícita o explícita 736 00:43:41,960 --> 00:43:43,079 O que no se pueden hacer 737 00:43:43,079 --> 00:43:43,900 Porque hace caso 738 00:43:43,900 --> 00:43:48,710 Operadores 739 00:43:48,710 --> 00:43:50,730 Estos los conocemos 740 00:43:50,730 --> 00:43:51,849 Aritméticos 741 00:43:51,849 --> 00:43:55,190 Estos también los conocemos 742 00:43:55,190 --> 00:43:55,869 Un poquito 743 00:43:55,869 --> 00:43:57,570 Son de comparación 744 00:43:57,570 --> 00:44:01,489 ¿Vale? Dos números iguales, dos números distintos 745 00:44:01,489 --> 00:44:03,889 Mayores, menor, mayor igual y menor igual 746 00:44:03,889 --> 00:44:09,150 ¿Vale? El operador ternario que pilla un booleano 747 00:44:09,150 --> 00:44:11,610 Yo le hago una expresión 1 y una expresión 2 748 00:44:11,610 --> 00:44:15,949 Hay dos bloques aquí que no hemos visto todavía 749 00:44:15,949 --> 00:44:19,349 Estos, que no os lo explico 750 00:44:19,349 --> 00:44:22,849 Existen, pero son cosas a nivel de bit 751 00:44:22,849 --> 00:44:25,909 Shift de bit y cosas por el estilo 752 00:44:25,909 --> 00:44:29,889 Esto si no vais a hacer cosas muy muy concretas de la informática 753 00:44:29,889 --> 00:44:31,670 No los volveréis a ver en vuestra vida 754 00:44:31,670 --> 00:44:36,110 Pero esto sí, esto lo veréis demasiado 755 00:44:36,110 --> 00:44:38,369 Estos son operadores booleanos 756 00:44:38,369 --> 00:44:44,750 Sirven para combinar dos expresiones booleanas 757 00:44:44,750 --> 00:44:47,969 Verdadero y falso 758 00:44:47,969 --> 00:44:50,070 O verdadero o falso 759 00:44:50,070 --> 00:44:52,269 Le dedicaremos un poquito más de tiempo 760 00:44:52,269 --> 00:44:53,949 Mañana no 761 00:44:53,949 --> 00:44:57,570 Pero más adelante 762 00:44:57,570 --> 00:45:02,690 Y estos operadores compactos 763 00:45:02,690 --> 00:45:04,690 Los que nos interesa son estos de aquí 764 00:45:04,690 --> 00:45:06,690 Y este de aquí principalmente 765 00:45:06,690 --> 00:45:10,710 Si yo tengo una variable a más más 766 00:45:10,710 --> 00:45:13,530 Es como decir que a vale a más uno 767 00:45:13,530 --> 00:45:15,570 Sustancialmente sumarle uno a 768 00:45:15,570 --> 00:45:19,010 Menos menos resta uno a 769 00:45:19,010 --> 00:45:21,949 Más igual es como hacer 770 00:45:21,949 --> 00:45:24,130 Ahora os lo enseño 771 00:45:24,130 --> 00:45:25,789 Se hace antes así 772 00:45:25,789 --> 00:45:29,409 Si yo tengo 773 00:45:29,409 --> 00:45:30,710 Int 774 00:45:30,710 --> 00:45:33,769 Número es igual a cero 775 00:45:33,769 --> 00:45:37,030 ¿Cuánto vale 776 00:45:37,030 --> 00:45:38,530 Int 777 00:45:38,530 --> 00:45:39,849 Número dos 778 00:45:39,849 --> 00:45:41,070 Número 779 00:45:41,070 --> 00:45:45,489 Número más más 780 00:45:45,489 --> 00:45:49,639 Preciso 781 00:45:49,639 --> 00:45:51,340 Número 782 00:45:51,340 --> 00:45:52,900 ¿Cuánto me imprime? 783 00:45:53,539 --> 00:45:54,739 Uno 784 00:45:54,739 --> 00:45:57,579 Déjame quitar 785 00:45:57,579 --> 00:45:59,860 esto 786 00:45:59,860 --> 00:46:02,380 y esto 787 00:46:02,380 --> 00:46:04,199 y esto 788 00:46:04,199 --> 00:46:08,610 1 789 00:46:08,610 --> 00:46:13,150 y si vuelvo a hacer esto 790 00:46:13,150 --> 00:46:14,809 ¿ahora cuánto vale? 791 00:46:15,550 --> 00:46:19,079 2 792 00:46:19,079 --> 00:46:21,559 ¿sí? 793 00:46:23,340 --> 00:46:25,159 esto es equivalente 794 00:46:25,159 --> 00:46:26,699 a hacer 795 00:46:26,699 --> 00:46:28,400 número 796 00:46:28,400 --> 00:46:31,239 es igual a 797 00:46:31,239 --> 00:46:33,599 número más 1 798 00:46:33,599 --> 00:46:41,690 Pilla el valor actual de número, súmale 1 y guárdalo en número 799 00:46:41,690 --> 00:46:51,679 Esto es equivalente a decir 800 00:46:51,679 --> 00:46:56,440 Número es igual a número menos 1 801 00:46:56,440 --> 00:47:04,139 Y luego están cosillas como 802 00:47:04,139 --> 00:47:08,480 Número más igual 3 803 00:47:08,480 --> 00:47:12,219 Esta es equivalente a decir 804 00:47:12,219 --> 00:47:14,719 Número es igual a 805 00:47:14,719 --> 00:47:15,679 Número 806 00:47:15,679 --> 00:47:17,400 Más 3 807 00:47:17,400 --> 00:47:27,739 Porque es el esquema más compacto 808 00:47:28,420 --> 00:47:29,960 Y yo esto lo odio 809 00:47:29,960 --> 00:47:31,820 Esto sí 810 00:47:31,820 --> 00:47:34,059 Pero estos de aquí 811 00:47:34,059 --> 00:47:34,659 Yo los odio 812 00:47:34,659 --> 00:47:40,389 A veces puede tener su sentido 813 00:47:40,389 --> 00:47:42,070 Y os lo digo 814 00:47:42,070 --> 00:47:43,289 No porque lo uséis 815 00:47:43,289 --> 00:47:45,269 Pero están aquí 816 00:47:45,269 --> 00:47:48,030 Son los mismos con más o menos 817 00:47:48,030 --> 00:47:49,730 por dividido y 818 00:47:49,730 --> 00:47:51,409 módulo, ¿vale? 819 00:47:52,989 --> 00:47:53,469 pero 820 00:47:53,469 --> 00:47:55,889 porque lo podéis ver 821 00:47:55,889 --> 00:47:57,849 de repente los veis 822 00:47:57,849 --> 00:47:59,769 a veces estos se usan en while 823 00:47:59,769 --> 00:48:01,650 y cosas por el estilo, se pueden utilizar al final 824 00:48:01,650 --> 00:48:03,269 para actualizar el valor 825 00:48:03,269 --> 00:48:07,170 esto sí que se usa 826 00:48:07,170 --> 00:48:09,210 más más y menos menos se usa mucho 827 00:48:09,210 --> 00:48:10,829 sobre todo en un for, por ejemplo 828 00:48:10,829 --> 00:48:13,449 y finalmente 829 00:48:13,449 --> 00:48:14,769 y aquí acabo 830 00:48:14,769 --> 00:48:17,969 pues los operadores y su orden 831 00:48:17,969 --> 00:48:26,230 Si yo tengo una expresión grande así y quiero evaluarla, pues primero busco estos operadores de aquí. 832 00:48:27,869 --> 00:48:39,829 Una vez que he evaluado estos operadores de aquí, paso a estos, luego a estos, luego a estos, luego a estos, luego a estos, luego a estos, hasta el final. 833 00:48:42,030 --> 00:48:47,389 Es la razón de por qué las multiplicaciones se ejecutan antes de la suma, por ejemplo. 834 00:48:47,389 --> 00:48:53,909 Repito, si no me acuerdo esto 835 00:48:53,909 --> 00:48:54,869 Pongo paréntesis 836 00:48:54,869 --> 00:49:00,769 Lo estás forzando tú, estás diciendo 837 00:49:00,769 --> 00:49:02,789 Antes hazme esto, luego esto 838 00:49:02,789 --> 00:49:04,070 Y luego lo sumas con esto 839 00:49:04,070 --> 00:49:06,150 Le estás diciendo tú 840 00:49:06,150 --> 00:49:08,489 A lo mejor lo podrías escribir en una forma 841 00:49:08,489 --> 00:49:10,550 Sin paréntesis, pero a lo mejor 842 00:49:10,550 --> 00:49:12,570 Se vuelve más complicado 843 00:49:12,570 --> 00:49:14,690 Luego de leer, no lo sé, eso lo sabéis vosotros 844 00:49:14,690 --> 00:49:16,590 ¿Dudas? 845 00:49:19,389 --> 00:49:19,829 Vale 846 00:49:19,829 --> 00:49:22,190 Sobre estos de aquí 847 00:49:22,190 --> 00:49:24,409 And, and, etc 848 00:49:24,409 --> 00:49:26,389 Vamos a hacer un dibujito 849 00:49:26,389 --> 00:49:27,150 Paint. 850 00:49:33,019 --> 00:49:41,300 Nosotros, cuando trabajamos con valores de verdad, tenemos dos valores, true o false. 851 00:49:43,670 --> 00:49:44,889 ¿Sí? ¿Verdadero o falso? 852 00:49:45,469 --> 00:49:45,670 ¿Vale? 853 00:49:46,170 --> 00:49:53,469 Yo puedo tener una expresión grande, cuanto os da la gana, que cuando se resuelve, me da o true o false. 854 00:49:54,289 --> 00:49:54,530 ¿Vale? 855 00:49:54,530 --> 00:49:59,469 Pero, ¿qué pasa si yo tengo dos expresiones y quiero combinarlas entre ellas? 856 00:49:59,849 --> 00:50:01,730 Pues, existen tablas de verdad. 857 00:50:03,110 --> 00:50:13,139 Por ejemplo, el operador end, que se escribe así porque sí. 858 00:50:13,780 --> 00:50:15,079 ¿Se puede poner con una sola? 859 00:50:15,199 --> 00:50:19,400 No, ponedlo siempre con dos ampersand, este simbolito de aquí. 860 00:50:19,400 --> 00:50:25,760 El que está encima del 6, el que... Dungeons and Dragons. 861 00:50:26,159 --> 00:50:27,099 ¿Habéis visto la película? 862 00:50:28,019 --> 00:50:29,440 Pues este de aquí. 863 00:50:31,760 --> 00:50:32,880 Este es el operador 1. 864 00:50:34,119 --> 00:50:35,500 Este es el operador 2. 865 00:50:35,500 --> 00:50:37,599 Hay cuatro casos 866 00:50:37,599 --> 00:50:40,719 Esto puede ser verdadero, esto puede ser falso 867 00:50:40,719 --> 00:50:44,380 Esto puede ser verdadero, esto puede ser falso 868 00:50:44,380 --> 00:50:47,139 Más que operador, esto serían expresiones 869 00:50:47,139 --> 00:50:49,840 La expresión uno y la expresión dos 870 00:50:49,840 --> 00:50:53,400 A ver, si la expresión uno es verdadero 871 00:50:53,400 --> 00:50:55,980 Y la expresión e, esto es un e 872 00:50:55,980 --> 00:51:00,519 No, perdón, i, e es en italiano, i 873 00:51:00,519 --> 00:51:04,320 Si la expresión uno es verdadero 874 00:51:04,320 --> 00:51:07,079 Y la expresión 2 es verdadero 875 00:51:07,079 --> 00:51:10,360 ¿Será verdadero? 876 00:51:11,559 --> 00:51:16,420 Pero, si esta es falsa y esta es verdadera 877 00:51:16,420 --> 00:51:17,199 ¿Cómo será? 878 00:51:18,440 --> 00:51:19,199 Falso 879 00:51:19,199 --> 00:51:25,179 Y si esta es verdadera y esta es falsa 880 00:51:25,179 --> 00:51:26,539 Falso 881 00:51:26,539 --> 00:51:29,860 Y si las dos son falsas 882 00:51:29,860 --> 00:51:31,760 Falso 883 00:51:31,760 --> 00:51:34,210 ¿Sí? 884 00:51:34,210 --> 00:51:43,449 Ahora hacemos ejemplos 885 00:51:43,449 --> 00:51:44,190 Si nos da tiempo 886 00:51:44,190 --> 00:51:48,659 Luego está el OR 887 00:51:48,659 --> 00:51:54,769 Y solo si 888 00:51:54,769 --> 00:51:56,050 El I 889 00:51:56,050 --> 00:51:58,730 Solo si las dos son verdaderas 890 00:51:58,730 --> 00:51:59,690 Es verdadero 891 00:51:59,690 --> 00:52:01,269 Si no, es falso 892 00:52:01,269 --> 00:52:03,050 Y si no está el OR 893 00:52:03,050 --> 00:52:04,409 O esta o esta 894 00:52:04,409 --> 00:52:05,750 Entonces 895 00:52:05,750 --> 00:52:07,230 Este es el OR 896 00:52:07,230 --> 00:52:10,929 Esto es true 897 00:52:10,929 --> 00:52:11,869 False 898 00:52:11,869 --> 00:52:14,389 True y false 899 00:52:14,389 --> 00:52:20,260 Si son verdaderas las dos, es verdadero 900 00:52:20,260 --> 00:52:23,860 Si una es verdadera y la otra falsa, también es verdadero 901 00:52:23,860 --> 00:52:26,860 Si una es verdadera y la otra falsa, también es verdadero 902 00:52:26,860 --> 00:52:29,480 Si las dos son falsas, es falso 903 00:52:29,480 --> 00:52:32,940 O sea, sustancialmente estos dos operadores me dicen 904 00:52:32,940 --> 00:52:36,280 Si las dos son verdaderas, es verdadero 905 00:52:36,280 --> 00:52:37,199 Y si no es falso 906 00:52:37,199 --> 00:52:41,260 O esta de aquí es si una de las dos es verdadera 907 00:52:41,260 --> 00:52:42,739 O las dos son verdaderas 908 00:52:42,739 --> 00:52:44,619 Es un or 909 00:52:44,619 --> 00:52:46,559 O esto o esto 910 00:52:46,559 --> 00:52:48,059 me vale cualquier de las dos 911 00:52:48,059 --> 00:52:50,360 este es un i 912 00:52:50,360 --> 00:52:52,139 las dos a la vez 913 00:52:52,139 --> 00:52:53,900 mientras que este aquí es un or 914 00:52:53,900 --> 00:52:55,780 o las dos o una de las dos 915 00:52:55,780 --> 00:52:59,480 y con esto haremos ejemplos 916 00:52:59,480 --> 00:53:00,699 en los próximos días 917 00:53:00,699 --> 00:53:02,119 la otra 918 00:53:02,119 --> 00:53:05,539 el otro que tenemos 919 00:53:05,539 --> 00:53:06,440 es el not 920 00:53:06,440 --> 00:53:09,119 el not es 921 00:53:09,119 --> 00:53:10,820 si soy true 922 00:53:10,820 --> 00:53:12,739 not true es false 923 00:53:12,739 --> 00:53:14,519 esto es al revés 924 00:53:14,519 --> 00:53:17,280 es este de aquí 925 00:53:17,280 --> 00:53:24,260 este. Y es lo que 926 00:53:24,260 --> 00:53:25,440 sale aquí. 927 00:53:27,670 --> 00:53:29,269 Esto es como decir not igual. 928 00:53:30,909 --> 00:53:31,489 O sea, diferente. 929 00:53:32,969 --> 00:53:33,110 ¿Sí? 930 00:53:34,530 --> 00:53:35,250 Esto 931 00:53:35,250 --> 00:53:37,670 cambia 932 00:53:37,670 --> 00:53:38,530 el 933 00:53:38,530 --> 00:53:43,179 valor de verdad de lo que tú 934 00:53:43,179 --> 00:53:43,500 tienes. 935 00:53:44,960 --> 00:53:48,539 ¿Sí? Entonces, 936 00:53:48,539 --> 00:53:50,780 oye, señores, que aquí no hemos acabado. 937 00:53:54,570 --> 00:53:55,429 Vamos a hacer pruebas. 938 00:53:56,230 --> 00:53:56,809 Boolean. 939 00:53:56,809 --> 00:54:05,849 B1 es igual a 5 menor que 3 940 00:54:05,849 --> 00:54:09,320 ¿Cuánto vale B1? 941 00:54:18,309 --> 00:54:18,909 Falso 942 00:54:18,909 --> 00:54:20,210 ¿Vale? 943 00:54:21,030 --> 00:54:23,170 Ahora, hagamos así 944 00:54:23,170 --> 00:54:27,570 X menor que 10 945 00:54:27,570 --> 00:54:33,400 Verdadero 946 00:54:33,400 --> 00:54:34,639 ¿Estamos de acuerdo hasta aquí? 947 00:54:34,639 --> 00:54:40,980 Ahora, ¿cómo hago una expresión aquí para que B1 sea verdadero? 948 00:54:41,119 --> 00:54:44,460 solo si x está entre 0 y 10. 949 00:55:17,199 --> 00:55:21,599 Por ejemplo, con esto he comprobado si x es una nota, 950 00:55:25,809 --> 00:55:27,230 porque es un valor entre 0 y 10. 951 00:55:28,329 --> 00:55:30,050 Entonces podría hacer una cosa así. 952 00:55:30,050 --> 00:55:52,840 Si, no, bueno, si no, string res es igual a si b1, tu nota es más x. 953 00:55:52,840 --> 00:55:59,139 Si no, no es una nota válida 954 00:55:59,139 --> 00:56:06,760 ¿Cómo lo veis? 955 00:56:07,219 --> 00:56:10,840 Bueno, esto X, ya existe un X 956 00:56:10,840 --> 00:56:12,039 Pero, ¿me entendéis? 957 00:56:12,699 --> 00:56:13,239 ¿Qué he hecho? 958 00:56:14,619 --> 00:56:16,780 Este de aquí es una cosa que me dice 959 00:56:16,780 --> 00:56:20,000 Que esto es verdadero solo si 960 00:56:20,000 --> 00:56:25,699 Las dos expresiones aquí son verdaderas a la vez 961 00:56:25,699 --> 00:56:26,840 Porque he usado Y 962 00:56:26,840 --> 00:56:36,000 entonces si x es mayor que cero y al mismo tiempo x es menor o igual que 10 o sea un 963 00:56:36,000 --> 00:56:44,699 valor entre 0 y 10 esto será verdadero y luego digo que si esto es verdadero entonces te doy 964 00:56:44,699 --> 00:56:52,280 tu nota pero si esto es falso quiere decir que la nota que se ha puesto aquí o es menor que