1 00:00:02,770 --> 00:00:06,629 Vale, aquí tenemos ese diagrama de flujo. 2 00:00:08,089 --> 00:00:10,390 Vale, aquí tenemos, ¿cuál es nuestra condición? 3 00:00:11,230 --> 00:00:17,449 Nuestra condición es, número 1, lo voy a llamar n1 para que sea más, igual a n2. 4 00:00:18,829 --> 00:00:20,129 Esta es la condición. 5 00:00:22,030 --> 00:00:23,649 ¿Qué pasa si se cumple? 6 00:00:24,170 --> 00:00:27,050 Pues si se cumple, se está haciendo todo esto. 7 00:00:27,050 --> 00:00:30,210 Todo esto de aquí 8 00:00:30,210 --> 00:00:32,070 Se está haciendo 9 00:00:32,070 --> 00:00:36,759 Si se cumple 10 00:00:36,759 --> 00:00:37,640 Todo eso 11 00:00:37,640 --> 00:00:40,399 Si se cumple 12 00:00:40,399 --> 00:00:41,500 Todo esto de aquí 13 00:00:41,500 --> 00:00:43,340 Lo que está en este bloque 14 00:00:43,340 --> 00:00:45,840 ¿Qué pasa si no se cumple? 15 00:00:46,820 --> 00:00:48,039 Si no se cumple 16 00:00:48,039 --> 00:00:48,920 Está haciendo 17 00:00:48,920 --> 00:00:50,859 Todo esto 18 00:00:50,859 --> 00:00:52,140 En este caso es más cortito 19 00:00:52,140 --> 00:00:53,039 Una sola sentencia 20 00:00:53,039 --> 00:00:54,840 Todo esto es lo que está haciendo aquí 21 00:00:54,840 --> 00:00:55,640 Si no se cumple 22 00:00:55,640 --> 00:00:56,780 Todo eso está ahí 23 00:00:56,780 --> 00:00:57,399 Haciendo 24 00:00:57,399 --> 00:00:59,520 ¿Vale? 25 00:00:59,899 --> 00:01:25,420 Y tanto si se cumple, que hará todo eso de ahí, como si no se cumple, que hará todo esto de aquí, una vez que se ha hecho o esto o esto, una de las dos cosas, pues ya el programa sigue, ¿dónde sigue? Pues aquí, este punto es este punto, ¿vale? 26 00:01:25,420 --> 00:01:28,780 seguimos por aquí 27 00:01:28,780 --> 00:01:30,540 ejecutando lo que venga después 28 00:01:30,540 --> 00:01:32,040 en este caso son unas sentencias 29 00:01:32,040 --> 00:01:34,260 pero podrían ser muchas las que fueran 30 00:01:34,260 --> 00:01:40,629 vale, pues cada vez que vemos algo así 31 00:01:40,629 --> 00:01:42,430 tenemos que ver el diagrama de flujo 32 00:01:42,430 --> 00:01:43,750 las sentencias de arriba 33 00:01:43,750 --> 00:01:45,430 es lo que hay arriba 34 00:01:45,430 --> 00:01:46,530 lo que sea 35 00:01:46,530 --> 00:01:49,409 la decisión 36 00:01:49,409 --> 00:01:51,370 ¿qué se hace en la rama del sí? 37 00:01:51,969 --> 00:01:53,230 lo que hay en el if 38 00:01:53,230 --> 00:01:54,989 en este bloque entre llaves 39 00:01:54,989 --> 00:01:57,209 ¿qué se hace en la rama del no? 40 00:01:57,510 --> 00:01:58,670 lo que hay aquí en el else 41 00:01:58,670 --> 00:02:00,109 en este bloque entre llaves 42 00:02:00,109 --> 00:02:02,890 cuando se ha hecho 43 00:02:02,890 --> 00:02:04,829 la que sea, en cada ejecución 44 00:02:04,829 --> 00:02:06,769 puede ser una distinta, cuando se ha hecho 45 00:02:06,769 --> 00:02:08,669 la que sea, el programa 46 00:02:08,669 --> 00:02:09,949 continúa su camino 47 00:02:09,949 --> 00:02:12,169 continúa su camino donde? aquí 48 00:02:12,169 --> 00:02:14,610 este es el punto donde el programa 49 00:02:14,610 --> 00:02:16,150 continúa su camino 50 00:02:16,150 --> 00:02:18,490 ahí, ahí lo continúa 51 00:02:18,490 --> 00:02:20,610 independientemente de si ha hecho esto o esto 52 00:02:20,610 --> 00:02:22,669 continúa con lo que toque 53 00:02:22,669 --> 00:02:24,909 y ahí podría 54 00:02:24,909 --> 00:02:26,289 seguir habiendo sentencias 55 00:02:26,289 --> 00:02:28,629 porque el programa es la combinación 56 00:02:28,629 --> 00:02:30,469 de toda la secuencia 57 00:02:30,469 --> 00:02:32,150 de sentencias que van haciendo 58 00:02:32,150 --> 00:02:33,870 todo lo que me van pidiendo y ya está 59 00:02:33,870 --> 00:02:37,330 vale 60 00:02:37,330 --> 00:02:40,389 entonces vamos a ejecutarlo 61 00:02:40,389 --> 00:02:41,189 antes de 62 00:02:41,189 --> 00:02:43,229 modificar un poco más 63 00:02:43,229 --> 00:02:50,000 entonces efectivamente ejecutamos 64 00:02:50,000 --> 00:02:50,560 esto 65 00:02:50,560 --> 00:02:56,879 primero nos pide los números 66 00:02:56,879 --> 00:02:59,039 esto es antes del if, vale 67 00:02:59,039 --> 00:03:01,740 primero va a hacer esto 68 00:03:01,740 --> 00:03:03,460 porque esto es lo que va antes de la sentencia 69 00:03:03,460 --> 00:03:05,639 de decisión, vale, primero nos pide 70 00:03:05,639 --> 00:03:06,219 los números 71 00:03:06,219 --> 00:03:08,780 pues venga, el número 1 72 00:03:08,780 --> 00:03:10,099 pues el 45 73 00:03:10,099 --> 00:03:12,500 nos sigue pidiendo 74 00:03:12,500 --> 00:03:14,460 el número, vale 75 00:03:14,460 --> 00:03:16,419 ahora estamos pues haciendo esto 76 00:03:16,419 --> 00:03:18,919 número 2, le vamos a poner el 45 77 00:03:18,919 --> 00:03:20,860 otra vez, cuando le demos 78 00:03:20,860 --> 00:03:22,719 al enter ya estamos aquí, ahora 79 00:03:22,719 --> 00:03:24,740 se hará la pregunta, como son iguales 80 00:03:24,740 --> 00:03:26,199 entrará aquí 81 00:03:26,199 --> 00:03:28,719 y empezará a hacer todo esto 82 00:03:28,719 --> 00:03:31,020 efectivamente 83 00:03:31,020 --> 00:03:32,860 como son iguales y esta condición es 84 00:03:32,860 --> 00:03:34,319 true, entra en este bloque 85 00:03:34,319 --> 00:03:36,719 y me muestra el mensaje 86 00:03:36,719 --> 00:03:39,680 venga, segunda oportunidad 87 00:03:39,680 --> 00:03:41,919 me pide el número uno otra vez 88 00:03:41,919 --> 00:03:44,000 yo meto el número uno 89 00:03:44,000 --> 00:03:44,939 pues lo que sea 90 00:03:44,939 --> 00:03:48,240 me pide el número dos 91 00:03:48,240 --> 00:03:49,460 otra vez 92 00:03:49,460 --> 00:03:51,659 meto el número dos, el que me dé la gana 93 00:03:51,659 --> 00:03:54,319 y luego independientemente 94 00:03:54,319 --> 00:03:55,259 ya de cómo sean 95 00:03:55,259 --> 00:03:57,699 independientemente de cómo sean 96 00:03:57,699 --> 00:03:59,300 te mostraba la suma 97 00:03:59,300 --> 00:04:01,819 pues efectivamente 98 00:04:01,819 --> 00:04:03,379 me muestra la suma 99 00:04:03,379 --> 00:04:08,520 Y ya está, como ya ha terminado esto, el programa ahora ya ha continuado por aquí. 100 00:04:09,819 --> 00:04:17,879 Esto lógicamente no lo hace, porque esto es lo que se hubiera hecho, se hubiera hecho, si la condición hubiera sido falsa. 101 00:04:19,120 --> 00:04:20,220 Esto es lo que se hubiera hecho. 102 00:04:20,860 --> 00:04:23,139 Pero como la condición ha sido true, lo que se ha hecho es esto. 103 00:04:23,839 --> 00:04:27,040 O se hace esto de aquí, o se hace esto de aquí. 104 00:04:27,800 --> 00:04:29,040 O una, o la otra. 105 00:04:29,040 --> 00:04:32,579 Y cuando ya se ha hecho la opción correspondiente 106 00:04:32,579 --> 00:04:33,980 El programa sigue con lo que toque 107 00:04:33,980 --> 00:04:35,120 Que eso es lo que ha hecho 108 00:04:35,120 --> 00:04:36,819 Seguir con lo que toca 109 00:04:36,819 --> 00:04:38,720 ¿Vale? 110 00:04:47,300 --> 00:04:48,279 Bueno, ¿entendido? 111 00:04:51,889 --> 00:04:55,089 Vale, a ver, pequeñas modificaciones sintácticas 112 00:04:55,089 --> 00:04:57,889 Para irnos familiarizando 113 00:04:57,889 --> 00:05:02,050 Vale, por lo general yo he dicho 114 00:05:02,050 --> 00:05:03,910 Que las sentencias que se hacen 115 00:05:03,910 --> 00:05:06,490 Tanto en la rama del sí como en la rama del no 116 00:05:06,490 --> 00:05:10,509 irán entre esos símbolos de llave 117 00:05:10,509 --> 00:05:12,949 y eso es lo que se llama un bloque, ¿verdad? 118 00:05:13,769 --> 00:05:16,949 Esto es un bloque con un montón de sentencias 119 00:05:16,949 --> 00:05:21,009 y esto es otro bloque con otro montón de sentencias. 120 00:05:21,449 --> 00:05:23,029 Vale, bueno, en este caso con una sola. 121 00:05:25,050 --> 00:05:25,930 Bueno, pues, 122 00:05:27,930 --> 00:05:32,829 en el caso de que el bloque tenga una sola sentencia, 123 00:05:33,569 --> 00:05:35,290 en el caso de que tenga una sola, 124 00:05:35,290 --> 00:05:37,509 las llaves se pueden quitar 125 00:05:37,509 --> 00:05:39,370 solo en ese caso 126 00:05:39,370 --> 00:05:42,230 por ejemplo, en este ejemplo 127 00:05:42,230 --> 00:05:44,670 aquí no podríamos quitar las llaves 128 00:05:44,670 --> 00:05:46,230 porque la rama del sí 129 00:05:46,230 --> 00:05:47,129 y la rama del true 130 00:05:47,129 --> 00:05:48,509 tiene un montón de sentencias 131 00:05:48,509 --> 00:05:51,509 las tengo que poner obligatorias 132 00:05:51,509 --> 00:05:55,060 pero la rama del else 133 00:05:55,060 --> 00:05:55,920 solo tiene una 134 00:05:55,920 --> 00:05:59,319 entonces cuando solo hay 135 00:05:59,319 --> 00:06:02,060 una sentencia en la rama que sea 136 00:06:02,060 --> 00:06:04,399 la de if, else, true, false 137 00:06:04,399 --> 00:06:06,180 la llave es opcional 138 00:06:06,180 --> 00:06:09,459 y el programa sigue significando 139 00:06:09,459 --> 00:06:10,639 exactamente lo mismo 140 00:06:10,639 --> 00:06:15,019 ¿vale? entonces lo que yo he escrito antes 141 00:06:15,019 --> 00:06:16,860 y esto es idéntico 142 00:06:16,860 --> 00:06:22,110 ¿vale? 143 00:06:23,910 --> 00:06:25,269 entonces para Java 144 00:06:25,269 --> 00:06:26,649 ¿qué significa 145 00:06:26,649 --> 00:06:29,189 cuando él no ve una llave 146 00:06:29,189 --> 00:06:31,110 aquí? cuando él 147 00:06:31,110 --> 00:06:32,689 ve un else o ve un if 148 00:06:32,689 --> 00:06:35,089 y no ve que automáticamente después 149 00:06:35,089 --> 00:06:36,790 haya una llave, no ve, dice 150 00:06:36,790 --> 00:06:39,389 ah vale, entonces interpreto 151 00:06:39,389 --> 00:06:41,189 que la única 152 00:06:41,189 --> 00:06:42,790 sentencia que hay que hacer 153 00:06:42,790 --> 00:06:44,750 es la que viene después 154 00:06:44,750 --> 00:06:49,129 interpreto que la única que hay 155 00:06:49,129 --> 00:06:50,149 dentro de mi rama 156 00:06:50,149 --> 00:06:53,209 interpreto que es la única que hay 157 00:06:53,209 --> 00:06:54,470 es la que viene después 158 00:06:54,470 --> 00:06:56,709 y las que haya continuación 159 00:06:56,709 --> 00:06:58,629 son ya 160 00:06:58,629 --> 00:07:00,709 de fuera de la sentencia 161 00:07:00,709 --> 00:07:05,050 es decir, imaginaos que uno está 162 00:07:05,050 --> 00:07:07,089 haciendo un estilo 163 00:07:07,089 --> 00:07:08,170 de código fatal 164 00:07:08,170 --> 00:07:11,269 y esta sentencia la ha puesto así 165 00:07:11,269 --> 00:07:14,779 ¿vale? 166 00:07:17,829 --> 00:07:19,269 entonces uno podría pensar 167 00:07:19,269 --> 00:07:21,209 viendo este código, podría pensar 168 00:07:21,209 --> 00:07:23,730 que la rama del sí 169 00:07:23,730 --> 00:07:26,930 tiene todo esto 170 00:07:26,930 --> 00:07:28,910 esto es lo que se hace 171 00:07:28,910 --> 00:07:31,589 si me da true la condición 172 00:07:31,589 --> 00:07:33,750 y uno viendo esto así a lo tonto 173 00:07:33,750 --> 00:07:35,509 podría pensar entonces 174 00:07:35,509 --> 00:07:36,629 que la rama del no 175 00:07:36,629 --> 00:07:40,050 tiene todo esto 176 00:07:40,050 --> 00:07:46,350 Ya, pero está deduciendo eso por las tabulaciones y espacios 177 00:07:46,350 --> 00:07:47,550 Cuando eso no pinta nada 178 00:07:47,550 --> 00:07:49,230 No, es mentira 179 00:07:49,230 --> 00:07:53,110 En este programa, la rama del no o la del else 180 00:07:53,110 --> 00:07:56,569 Solo, solo tiene esto 181 00:07:56,569 --> 00:08:00,089 Y esta ya se hace después 182 00:08:00,089 --> 00:08:01,129 ¿Por qué? 183 00:08:01,629 --> 00:08:02,870 Porque no hay una llave aquí 184 00:08:02,870 --> 00:08:06,269 Entonces, desde el momento en que la máquina virtual 185 00:08:06,269 --> 00:08:08,750 el compilador ve que aquí 186 00:08:08,750 --> 00:08:10,370 no se abre una llave 187 00:08:10,370 --> 00:08:12,509 él deduce que entonces 188 00:08:12,509 --> 00:08:14,610 la única sentencia que tenemos dentro 189 00:08:14,610 --> 00:08:15,769 es esta 190 00:08:15,769 --> 00:08:18,350 y esta ya 191 00:08:18,350 --> 00:08:20,990 se sobreentiende que es una sentencia que ya está fuera 192 00:08:20,990 --> 00:08:22,689 del ifelse, esta ya está fuera 193 00:08:22,689 --> 00:08:24,850 con lo cual este programa 194 00:08:24,850 --> 00:08:26,550 me da igual que esto esté tabulado aquí 195 00:08:26,550 --> 00:08:28,129 que esté aquí, me da lo mismo 196 00:08:28,129 --> 00:08:30,290 es que significa lo mismo, significa igual 197 00:08:30,290 --> 00:08:33,049 las tabulaciones de los espacios no pintan nada 198 00:08:33,049 --> 00:08:34,649 son las llaves las que marcan 199 00:08:34,649 --> 00:08:36,889 entonces, aquí no hay llave 200 00:08:36,889 --> 00:08:38,809 entonces, sobreentiendo 201 00:08:38,809 --> 00:08:40,970 que solamente esta ascendencia 202 00:08:40,970 --> 00:08:42,809 es la que hay 203 00:08:42,809 --> 00:08:45,009 dentro del else, y lo que venga después 204 00:08:45,009 --> 00:08:46,250 lo que venga después 205 00:08:46,250 --> 00:08:48,769 ya está fuera, ya está fuera 206 00:08:48,769 --> 00:08:52,809 del if, vale, si este es 207 00:08:52,809 --> 00:08:53,309 mi 208 00:08:53,309 --> 00:09:07,379 si, no 209 00:09:07,379 --> 00:09:10,679 sigo por aquí 210 00:09:10,679 --> 00:09:11,820 sigo por aquí 211 00:09:11,820 --> 00:09:14,220 vale, como aquí no hay llave 212 00:09:14,220 --> 00:09:16,440 esto es lo único que va aquí 213 00:09:16,440 --> 00:09:17,120 lo único 214 00:09:17,120 --> 00:09:19,220 porque aquí no hay llave 215 00:09:19,220 --> 00:09:20,759 luego solo la siguiente sentencia 216 00:09:20,759 --> 00:09:22,399 y la que haya después 217 00:09:22,399 --> 00:09:23,840 todo lo que haya después 218 00:09:23,840 --> 00:09:25,460 ya es de fuera 219 00:09:25,460 --> 00:09:27,460 ya es de fuera y ya va aquí 220 00:09:27,460 --> 00:09:28,120 de fuera 221 00:09:28,120 --> 00:09:36,019 entonces este programa 222 00:09:36,019 --> 00:09:38,279 funcionaría perfectamente 223 00:09:38,279 --> 00:09:39,259 hace lo que tiene que hacer 224 00:09:39,259 --> 00:09:41,279 pero está escrito muy feo 225 00:09:41,279 --> 00:09:42,960 está escrito como para confundir 226 00:09:42,960 --> 00:09:44,960 porque uno lo ve así 227 00:09:44,960 --> 00:09:46,139 y parece que 228 00:09:46,139 --> 00:09:48,019 es que esto es dentro del ELSE 229 00:09:48,019 --> 00:09:49,259 no es dentro del ELSE 230 00:09:49,259 --> 00:09:50,720 es que no lo va a hacer dentro del ELSE 231 00:09:50,720 --> 00:09:51,379 en ningún caso 232 00:09:51,379 --> 00:09:53,679 vale 233 00:09:53,679 --> 00:09:54,980 entonces 234 00:09:54,980 --> 00:09:57,159 esta es una mejor manera 235 00:09:57,159 --> 00:09:59,879 de escribir este código 236 00:09:59,879 --> 00:10:01,559 aunque haga lo mismo, hace lo mismo 237 00:10:01,559 --> 00:10:04,100 es una mejor manera, porque aquí se ve más claro 238 00:10:04,100 --> 00:10:04,600 a la vista 239 00:10:04,600 --> 00:10:10,250 vale, aquí si yo quito las llaves 240 00:10:10,250 --> 00:10:11,350 la lío 241 00:10:11,350 --> 00:10:14,169 vale, yo voy a quitarlas 242 00:10:14,169 --> 00:10:15,389 aquí la lío porque son 243 00:10:15,389 --> 00:10:16,549 más de una sentencia 244 00:10:16,549 --> 00:10:18,129 yo las quito 245 00:10:18,129 --> 00:10:21,389 y efectivamente aquí me sale una cosa roja 246 00:10:21,389 --> 00:10:25,769 Porque aquí hay muchas antes del else 247 00:10:25,769 --> 00:10:26,490 Hay un montón 248 00:10:26,490 --> 00:10:29,860 Hay un montón 249 00:10:29,860 --> 00:10:31,840 Entonces, no 250 00:10:31,840 --> 00:10:34,080 Esto tiene que estar entre llaves 251 00:10:34,080 --> 00:10:41,379 ¿Vale? Luego entonces 252 00:10:41,379 --> 00:10:42,620 Primera cosa 253 00:10:42,620 --> 00:10:46,399 Si solamente hay una sentencia 254 00:10:46,399 --> 00:10:47,659 Tanto en la rama del sí 255 00:10:47,659 --> 00:10:49,340 Como en la rama del no 256 00:10:49,340 --> 00:10:52,259 Podemos quitar las llaves 257 00:10:52,259 --> 00:10:56,059 Porque el sentido del programa es idéntico 258 00:10:56,059 --> 00:10:56,700 Es lo mismo 259 00:10:56,700 --> 00:11:05,259 Se sobreentiende que solo la única sentencia que sigue al if o al else es la que cuenta 260 00:11:05,259 --> 00:11:08,000 Vale, primera cosa 261 00:11:08,000 --> 00:11:16,740 Segunda cuestión de sintaxis, de código 262 00:11:16,740 --> 00:11:22,480 La rama del no es opcional 263 00:11:22,480 --> 00:11:26,679 ¿La puedo poner o puedo no ponerla? 264 00:11:26,679 --> 00:11:31,100 es decir, existe una variante en la cual yo solo hago algo 265 00:11:31,100 --> 00:11:34,320 si se cumple la condición y si no se cumple no hago nada 266 00:11:34,320 --> 00:11:38,100 por ejemplo, vamos a poner otro ejemplo chorra 267 00:11:38,100 --> 00:12:09,029 por ejemplo, vamos a hacer un programa y así ya aprovechamos 268 00:12:09,029 --> 00:12:11,990 para esto que os digo, de incorporar alguna de las pequeñas 269 00:12:11,990 --> 00:12:17,149 funcionalidades que tienen los datos string, vamos a hacer un programa 270 00:12:17,149 --> 00:12:20,830 que solicite tu nombre 271 00:12:20,830 --> 00:12:24,009 Y te salude por tu nombre 272 00:12:24,009 --> 00:12:32,799 ¿Vale? 273 00:12:34,480 --> 00:12:35,940 Pero si 274 00:12:35,940 --> 00:12:40,110 Te salude por tu nombre 275 00:12:40,110 --> 00:12:41,070 Solo 276 00:12:41,070 --> 00:12:43,250 Si tu nombre 277 00:12:43,250 --> 00:12:47,490 Tiene menos de 278 00:12:47,490 --> 00:12:49,889 Diez caracteres 279 00:12:49,889 --> 00:12:52,870 Si tu nombre es demasiado largo 280 00:12:52,870 --> 00:12:53,570 No te saluda 281 00:12:53,570 --> 00:12:54,649 ¿Vale? 282 00:12:54,649 --> 00:12:56,730 Este programa, esta aplicación 283 00:12:56,730 --> 00:12:58,750 Solo concibe saludar 284 00:12:58,750 --> 00:13:01,450 si tu nombre tiene menos de 10 caracteres 285 00:13:01,450 --> 00:13:02,490 si no, te ignora 286 00:13:02,490 --> 00:13:04,629 no es válido por lo que sea tu nombre 287 00:13:04,629 --> 00:13:05,509 o ya está, te ignora 288 00:13:05,509 --> 00:13:07,929 vale 289 00:13:07,929 --> 00:13:10,690 bueno, pues vamos a aprovechar esto 290 00:13:10,690 --> 00:13:13,029 para incorporar alguna de las 291 00:13:13,029 --> 00:13:15,009 poquitas cosas que puede hacer string 292 00:13:15,009 --> 00:13:16,950 que podemos nosotros ahora entender 293 00:13:16,950 --> 00:13:19,009 vale 294 00:13:19,009 --> 00:13:20,990 pero bueno, están recogidas en el otro fichero 295 00:13:20,990 --> 00:13:21,850 que en el aula virtual 296 00:13:21,850 --> 00:13:24,429 pues venga, datos del programa 297 00:13:24,429 --> 00:13:25,529 nuestro nombre 298 00:13:25,529 --> 00:13:28,129 un nombre es una cadena de caracteres 299 00:13:28,129 --> 00:13:30,870 Lo tenemos que guardar en un dato stream 300 00:13:30,870 --> 00:13:32,610 Pues venga, mi nombre 301 00:13:32,610 --> 00:13:35,970 Como vamos a leer del teclado 302 00:13:35,970 --> 00:13:38,090 El escáner lo necesitamos 303 00:13:38,090 --> 00:13:55,100 Vale, pues entonces 304 00:13:55,100 --> 00:13:56,460 Leer el nombre 305 00:13:56,460 --> 00:13:58,159 Tenemos que leerlo sí o sí 306 00:13:58,159 --> 00:13:59,840 Ahora otra cosa es 307 00:13:59,840 --> 00:14:01,639 Que puede que saludemos 308 00:14:01,639 --> 00:14:03,360 O que no hagamos nada 309 00:14:03,360 --> 00:14:04,639 Depende de una condición 310 00:14:04,639 --> 00:14:06,659 El nombre hay que leerlo sí o sí 311 00:14:06,659 --> 00:14:08,879 Pues venga, vamos a aprovechar 312 00:14:08,879 --> 00:14:11,440 Y lo leemos aquí a la vez que lo declaramos 313 00:14:11,440 --> 00:14:15,059 Vale 314 00:14:15,059 --> 00:14:16,659 Pues vamos a incorporar. 315 00:14:18,340 --> 00:14:23,919 Nosotros ya sabemos leer números, tanto enteros como decimales, 316 00:14:24,019 --> 00:14:25,879 y guardarlos en las variables correspondientes, 317 00:14:26,019 --> 00:14:29,700 con nextIn, nextDouble, nextFloat, si era Float. 318 00:14:30,399 --> 00:14:32,840 También sabemos leer un boolean, si escribimos true o false, 319 00:14:33,399 --> 00:14:35,539 con nextBoolean se guarda en el boolean correspondiente, 320 00:14:35,600 --> 00:14:36,139 eso lo hemos hecho. 321 00:14:36,919 --> 00:14:40,000 Lo que no hemos hecho es leer una cadena entera de texto 322 00:14:40,000 --> 00:14:41,740 y guardarla en una variable string. 323 00:14:41,740 --> 00:14:45,519 Bueno, pues también hay un método para eso 324 00:14:45,519 --> 00:14:46,500 ¿Qué es esto? 325 00:14:46,960 --> 00:14:51,419 En lugar de escribir next int, next double, next boolean 326 00:14:51,419 --> 00:14:52,100 Pues next line 327 00:14:52,100 --> 00:15:00,419 Vamos a poner primero el aviso de introduzca nombre 328 00:15:00,419 --> 00:15:01,600 Claro, para que 329 00:15:01,600 --> 00:15:06,559 Introduzca su nombre 330 00:15:06,559 --> 00:15:13,940 Vale, pues ya está 331 00:15:13,940 --> 00:15:15,320 Esto no tiene ninguna dificultad 332 00:15:15,320 --> 00:15:16,080 Next line 333 00:15:16,080 --> 00:15:19,879 Se queda ahí esperando que tú metas pipipipipipipi texto 334 00:15:19,879 --> 00:15:22,200 Cuando ya la has dado al enter 335 00:15:22,200 --> 00:15:23,240 Coge ese texto 336 00:15:23,240 --> 00:15:24,860 Esa sucesión de caracteres 337 00:15:24,860 --> 00:15:25,600 Tenga lo que tenga 338 00:15:25,600 --> 00:15:26,820 Y lo guarda en stream 339 00:15:26,820 --> 00:15:27,960 Vale, muy bien 340 00:15:27,960 --> 00:15:30,480 Ahora 341 00:15:30,480 --> 00:15:36,120 Vale, ahora ya 342 00:15:36,120 --> 00:15:38,100 Si que el programa 343 00:15:38,100 --> 00:15:39,340 Nos exige 344 00:15:39,340 --> 00:15:41,259 Incorporar una sentencia de decisión 345 00:15:41,259 --> 00:15:42,299 Porque el programa que hace 346 00:15:42,299 --> 00:15:44,820 El programa me va a saludar 347 00:15:44,820 --> 00:15:46,080 Pero 348 00:15:46,080 --> 00:15:47,860 Hola 349 00:15:47,860 --> 00:15:50,740 Nombre 350 00:15:50,740 --> 00:15:52,460 En principio esto es saludarme 351 00:15:52,460 --> 00:15:55,679 mostraros la nombre, pero ¿me va a saludar en cualquier caso? 352 00:15:56,480 --> 00:15:58,759 no, solo me va a saludar 353 00:15:58,759 --> 00:16:00,679 si se da una condición, solo 354 00:16:00,679 --> 00:16:04,379 si no se da no me saluda, entonces necesitamos 355 00:16:04,379 --> 00:16:07,139 una sentencia de decisión que me permita hacer 356 00:16:07,139 --> 00:16:10,659 cosas diferentes en función de si pasa una cosa 357 00:16:10,659 --> 00:16:12,399 o no pasa, la necesito, no hay otra 358 00:16:12,399 --> 00:16:16,700 ¿vale? entonces si se da una cosa me saludará 359 00:16:16,700 --> 00:16:19,440 y si no se da pues no hace nada 360 00:16:19,440 --> 00:16:21,340 vamos a ver qué es eso de no hacer nada 361 00:16:21,340 --> 00:16:23,919 vale, pues tendremos que poner una sentencia de decisión 362 00:16:23,919 --> 00:16:25,820 entonces ahora aquí 363 00:16:25,820 --> 00:16:28,080 si se da la condición 364 00:16:28,080 --> 00:16:29,440 que tendré que ver cuál es 365 00:16:29,440 --> 00:16:31,080 me saludas 366 00:16:31,080 --> 00:16:33,980 y aquí puedo poner la llave, puedo no ponerla 367 00:16:33,980 --> 00:16:35,320 da exactamente igual 368 00:16:35,320 --> 00:16:37,379 porque es sólo una sentencia 369 00:16:37,379 --> 00:16:38,700 saludarme 370 00:16:38,700 --> 00:16:42,179 y si no se da esa condición 371 00:16:42,179 --> 00:16:43,899 no haces nada 372 00:16:43,899 --> 00:16:46,100 con lo cual, ¿qué hago? 373 00:16:46,179 --> 00:16:47,820 ¿dejo yo aquí un bloque vacío sin nada? 374 00:16:49,220 --> 00:16:50,179 pues esto es 375 00:16:50,179 --> 00:17:10,299 Feo, lo puedo dejar, no pasa nada, pero es un poco feo. Entonces, se contempla que una sentencia de decisión de tipo if else, el else no esté y no pasa nada. ¿Qué significa si no está? Que en el caso de que la condición no se cumpla, no se hace nada. Ya está. Eso es lo que significa. 376 00:17:10,299 --> 00:17:13,680 es decir, dejarlo así 377 00:17:13,680 --> 00:17:15,579 y dejarlo 378 00:17:15,579 --> 00:17:19,799 así 379 00:17:19,799 --> 00:17:21,259 es lo mismo 380 00:17:21,259 --> 00:17:24,619 pero así es más feo 381 00:17:24,619 --> 00:17:26,059 así es más feo 382 00:17:26,059 --> 00:17:26,339 ¿vale? 383 00:17:27,819 --> 00:17:30,440 entonces si yo veo que en la rama del no no hago nada 384 00:17:30,440 --> 00:17:31,819 lo natural es que la quite 385 00:17:31,819 --> 00:17:40,509 ¿vale? 386 00:17:42,450 --> 00:17:43,549 entonces, ahora aquí 387 00:17:43,549 --> 00:17:44,369 ¿qué me faltaría? 388 00:17:45,269 --> 00:17:47,109 poner la condición de 389 00:17:47,109 --> 00:17:49,289 que el nombre 390 00:17:49,289 --> 00:17:51,710 tenga más de 10 caracteres 391 00:17:51,710 --> 00:17:53,289 pues ahí 392 00:17:53,289 --> 00:17:55,150 ya la he liado, ¿cómo saco yo 393 00:17:55,150 --> 00:17:57,049 el número de caracteres del nombre? yo que sé 394 00:17:57,049 --> 00:17:59,289 el nombre es una cadena de texto que me han 395 00:17:59,289 --> 00:18:01,009 metido, ¿cómo lo hago? 396 00:18:02,490 --> 00:18:03,309 bueno, pues ahí 397 00:18:03,309 --> 00:18:05,029 es donde viene que las variables 398 00:18:05,029 --> 00:18:07,049 string, por ser variables 399 00:18:07,049 --> 00:18:09,490 especiales, variables objeto 400 00:18:09,490 --> 00:18:11,529 pueden hacer cosas 401 00:18:11,529 --> 00:18:13,089 que las variables primitivas 402 00:18:13,089 --> 00:18:14,029 como los números 403 00:18:14,029 --> 00:18:17,210 los boolean, los char 404 00:18:17,210 --> 00:18:17,789 no pueden 405 00:18:17,789 --> 00:18:20,470 aquí es donde viene eso 406 00:18:20,470 --> 00:18:31,440 ¿vale? entonces vamos a ir incorporando 407 00:18:31,440 --> 00:18:33,180 algunas de esas pequeñas cositas 408 00:18:33,180 --> 00:18:34,859 para usarlas sin entender todavía 409 00:18:34,859 --> 00:18:36,160 que es una variable objeto 410 00:18:36,160 --> 00:18:38,819 vale, pues a ver 411 00:18:38,819 --> 00:18:43,180 nombre 412 00:18:43,180 --> 00:18:45,240 es una variable 413 00:18:45,240 --> 00:18:49,119 pero resulta que es una variable 414 00:18:49,119 --> 00:18:50,640 de las que yo estoy llamando 415 00:18:50,640 --> 00:18:51,980 objeto 416 00:18:51,980 --> 00:18:57,059 a las otras las llamo primitivas 417 00:18:57,059 --> 00:18:58,980 variable objeto 418 00:18:58,980 --> 00:19:01,180 ¿Por qué los objetos son diferentes a las primitivas? 419 00:19:01,759 --> 00:19:05,660 Ahora mismo nos es difícil de entender, no podemos, no sabemos lo que es un objeto. 420 00:19:06,220 --> 00:19:10,259 Pero bueno, sirva como indicación que la diferencia está en la forma en la que se almacena. 421 00:19:11,500 --> 00:19:17,819 ¿Vale? Una variable primitiva, como un número n, directamente se crea un espacio en memoria para ella. 422 00:19:18,900 --> 00:19:20,839 72, 14, 15. 423 00:19:21,660 --> 00:19:37,500 Sin embargo, una variable objeto como esta de aquí, string s, no se almacena directamente como un espacio en memoria con el dato, no se almacena así, se almacena de otra manera, ¿vale? 424 00:19:37,500 --> 00:19:48,259 Se almacena como una variable que tiene una dirección de memoria y esa dirección ya me dice, me está diciendo esa dirección donde está el dato. 425 00:19:48,259 --> 00:19:50,440 pero bueno, eso lo digo 426 00:19:50,440 --> 00:19:53,119 pues porque es la diferencia entre objeto 427 00:19:53,119 --> 00:19:54,920 y variable primitiva 428 00:19:54,920 --> 00:19:55,339 para 429 00:19:55,339 --> 00:19:58,660 ponerlo en contexto 430 00:19:58,660 --> 00:20:00,519 pero esto ahora mismo nos importa poco 431 00:20:00,519 --> 00:20:01,859 ¿vale? nos importa poco 432 00:20:01,859 --> 00:20:08,319 lo que nos importa es, ahora mismo 433 00:20:08,319 --> 00:20:09,500 que las variables objeto 434 00:20:09,500 --> 00:20:12,160 por el hecho de ser objetos 435 00:20:12,160 --> 00:20:14,859 aunque no entendamos muy bien lo que significa ser objetos 436 00:20:14,859 --> 00:20:16,500 tienen una posibilidad 437 00:20:16,500 --> 00:20:19,000 que no tienen las variables primitivas 438 00:20:19,000 --> 00:20:21,039 que es dar órdenes 439 00:20:21,039 --> 00:20:22,259 para que pasen cosas 440 00:20:22,259 --> 00:20:24,700 la variable S 441 00:20:24,700 --> 00:20:27,519 esta de aquí, aparte de tener el dato 442 00:20:27,519 --> 00:20:28,900 que es el nombre que sea 443 00:20:28,900 --> 00:20:31,160 aparte de tener el dato 444 00:20:31,160 --> 00:20:33,299 tiene la posibilidad 445 00:20:33,299 --> 00:20:35,480 de dar órdenes para que pasen cosas 446 00:20:35,480 --> 00:20:39,180 los objetos pueden hacerlo 447 00:20:39,180 --> 00:20:41,259 las variables primitivas 448 00:20:41,259 --> 00:20:42,779 como los números y decimales no pueden 449 00:20:42,779 --> 00:20:44,259 los objetos pueden 450 00:20:44,259 --> 00:20:47,619 y la variable S, aparte de guardar el dato 451 00:20:47,619 --> 00:20:48,660 puede dar órdenes 452 00:20:48,660 --> 00:20:49,839 para que pasen cosas 453 00:20:49,839 --> 00:20:52,660 ¿Y cómo se dan órdenes para que pasen cosas? 454 00:20:53,200 --> 00:20:56,119 Pues uno escribe la variable, un puntito 455 00:20:56,119 --> 00:21:00,140 Y la orden que sea dentro de las posibilidades 456 00:21:00,140 --> 00:21:02,039 Claro, dentro de las posibilidades 457 00:21:02,039 --> 00:21:05,140 Pues vamos a escribirlo, a ver 458 00:21:05,140 --> 00:21:12,569 Fijaos, si yo escribo aquí, lo voy a poner aquí abajo 459 00:21:12,569 --> 00:21:16,529 Si yo escribo aquí nombre y pongo punto 460 00:21:16,529 --> 00:21:19,390 Fijaos todo lo que se me despliega 461 00:21:19,390 --> 00:21:21,650 un montón de órdenes 462 00:21:21,650 --> 00:21:24,430 que puede dar ese objeto 463 00:21:24,430 --> 00:21:26,150 esto es lo que se llama 464 00:21:26,150 --> 00:21:27,990 métodos, ¿vale? que ya entenderemos 465 00:21:27,990 --> 00:21:29,569 también lo que es un método más adelante 466 00:21:29,569 --> 00:21:31,710 y dos o tres de ellos 467 00:21:31,710 --> 00:21:34,210 dos o tres, los tenemos que usar 468 00:21:34,210 --> 00:21:35,970 desde ya porque son básicos 469 00:21:35,970 --> 00:21:38,430 para hacer cosas con cadenas de texto 470 00:21:38,430 --> 00:21:40,289 son básicos 471 00:21:40,289 --> 00:21:41,230 ¿vale? 472 00:21:42,329 --> 00:21:42,890 entonces 473 00:21:42,890 --> 00:21:46,269 hay uno en particular 474 00:21:46,269 --> 00:21:47,930 que es 475 00:21:47,930 --> 00:21:50,430 este que pone aquí length de aquí 476 00:21:50,430 --> 00:21:52,569 este length 477 00:21:52,569 --> 00:21:54,710 que qué es lo que hace esta orden 478 00:21:54,710 --> 00:21:56,589 o este método, qué es lo que hace 479 00:21:56,589 --> 00:21:58,289 cuando está escrito después del punto 480 00:21:58,289 --> 00:22:00,750 lo que hace es ponerse 481 00:22:00,750 --> 00:22:02,529 a contar los caracteres 482 00:22:02,529 --> 00:22:04,109 de la cadena, ponerse a contarlos 483 00:22:04,109 --> 00:22:06,569 y decirte cuánto les han salido 484 00:22:06,569 --> 00:22:08,250 eso es lo que hace esta orden 485 00:22:08,250 --> 00:22:10,569 si tú invocas esta orden 486 00:22:10,569 --> 00:22:11,730 length 487 00:22:11,730 --> 00:22:14,589 se pone a contar los caracteres del 488 00:22:14,589 --> 00:22:16,410 dato, 1, 2, 3, 4 489 00:22:16,410 --> 00:22:19,609 y te dice 7, me han salido 7, eso hace. 490 00:22:21,150 --> 00:22:24,349 ¿Vale? Es un ejemplo de orden que puede invocar este objeto. 491 00:22:26,390 --> 00:22:32,009 Fijaos que si yo en lugar de una variable string hago esto mismo con una variable n, 492 00:22:32,009 --> 00:22:39,650 la variable primitiva n no tiene órdenes que invocar, no puede, porque no es un objeto. 493 00:22:41,190 --> 00:22:43,789 Solo los objetos pueden invocarlas. 494 00:22:43,789 --> 00:22:47,809 De hecho, scan también es un objeto 495 00:22:47,809 --> 00:22:51,769 Por eso a través del puntito ha podido invocar esta orden 496 00:22:51,769 --> 00:22:58,670 Que es, oye tú, teclado, quédate ahí a la espera de que te introduzcan un dato 497 00:22:58,670 --> 00:22:59,869 Y cuando te lo den, dámelo 498 00:22:59,869 --> 00:23:02,450 Es la misma idea 499 00:23:02,450 --> 00:23:09,390 Bueno, pues entonces, esto que he dicho yo del length es justo lo que queremos 500 00:23:09,390 --> 00:23:13,650 Me dicen, oye, vamos a contar cuántos caracteres tiene el nombre que me has dado 501 00:23:13,650 --> 00:23:19,250 Vamos a contarlos, porque si fueran menos de 10, entonces te saludo, si no, no. 502 00:23:20,210 --> 00:23:27,390 Entonces vamos a contarlos, pues anda, qué bien, porque nombre, por ser un objeto, puede dar esa orden, length, 503 00:23:31,349 --> 00:23:41,529 y esto que te saca, esto después de contarlo, te saca, te devuelve, te entrega el número de caracteres que tiene ese nombre. 504 00:23:41,910 --> 00:23:45,630 Te los entrega, te los devuelve, te los da, te dice, me han salido 25. 505 00:23:46,690 --> 00:23:53,309 vale, pues, los que me han salido son menores de 10, 506 00:23:53,890 --> 00:23:56,230 y ya tengo mi condición ahí estupendamente hecha, 507 00:23:57,849 --> 00:24:05,630 vale, si la cuenta de los caracteres que tiene este objeto cadena nombre, 508 00:24:06,349 --> 00:24:12,569 esta cuenta que me ha salido, porque esta orden led los ha contado y me los ha devuelto, 509 00:24:12,670 --> 00:24:17,890 es menor que 10, pues me saludas, y si no, no, 510 00:24:18,069 --> 00:24:32,799 Bueno, pues esta orden, la orden LENZ, que en lenguaje Java se llama método, este método, el método LENZ, ya es otra de esas cosas que ya nos aprendemos, la tenemos en la cabeza de memoria. 511 00:24:33,339 --> 00:24:42,839 Cuando yo necesite saber la cantidad de caracteres de una cadena, lo puedo obtener con LENZ, ya nos lo aprendemos de memoria y ya está. 512 00:24:42,839 --> 00:24:58,579 vale, pues este programa habría terminado 513 00:24:58,579 --> 00:25:00,559 me va a saludar 514 00:25:00,559 --> 00:25:02,319 solo si se cumple la condición 515 00:25:02,319 --> 00:25:02,960 si no, no 516 00:25:02,960 --> 00:25:06,000 y la rama del else como es opcional 517 00:25:06,000 --> 00:25:08,240 la he quitado porque en el caso 518 00:25:08,240 --> 00:25:09,559 de que no, no quiero que haga nada 519 00:25:09,559 --> 00:25:12,440 entonces si ejecutamos 520 00:25:12,440 --> 00:25:13,000 esto 521 00:25:13,000 --> 00:25:15,279 introduzca su nombre 522 00:25:15,279 --> 00:25:17,240 me saluda 523 00:25:17,240 --> 00:25:20,740 pero si lo vuelvo a ejecutar 524 00:25:20,740 --> 00:25:22,400 introduzco un nombre muy largo 525 00:25:22,400 --> 00:25:23,460 porque tengo un nombre muy largo 526 00:25:23,460 --> 00:25:26,240 el programa termina sin haber hecho nada 527 00:25:26,240 --> 00:25:29,799 ¿vale? 528 00:25:30,539 --> 00:25:31,640 no me saluda 529 00:25:31,640 --> 00:25:38,210 luego siguiente cosa que ya incorporamos 530 00:25:38,210 --> 00:25:40,869 la rama del else 531 00:25:40,869 --> 00:25:42,849 se puede quitar si está vacía 532 00:25:42,849 --> 00:25:49,049 ¿se puede quitar 533 00:25:49,049 --> 00:25:50,670 la rama del if si está vacía? 534 00:25:50,789 --> 00:25:54,490 no, imaginaos por ejemplo 535 00:25:54,490 --> 00:25:56,410 que queremos cambiar el código 536 00:25:56,410 --> 00:25:58,230 y decir 537 00:25:58,230 --> 00:26:00,490 imaginaos que hemos puesto 538 00:26:00,490 --> 00:26:01,329 aquí la condición 539 00:26:01,329 --> 00:26:03,470 en lugar de menor que 10 540 00:26:03,470 --> 00:26:05,390 mayor o igual que 10 541 00:26:05,390 --> 00:26:07,849 en este caso no queremos 542 00:26:07,849 --> 00:26:08,670 que nos salude 543 00:26:08,670 --> 00:26:11,930 y en el caso de que no 544 00:26:11,930 --> 00:26:13,470 sea mayor o igual que 10 545 00:26:13,470 --> 00:26:14,450 en este caso sí 546 00:26:14,450 --> 00:26:16,569 ¿vale? 547 00:26:22,759 --> 00:26:23,960 es decir, repito 548 00:26:23,960 --> 00:26:27,039 imaginaos que yo he puesto la condición 549 00:26:27,039 --> 00:26:28,779 así, porque me ha dado la gana ponerla así 550 00:26:28,779 --> 00:26:30,380 me ha dado la gana ponerla así 551 00:26:30,380 --> 00:26:32,299 pues para que el programa 552 00:26:32,299 --> 00:26:34,940 siga haciendo lo que tiene que hacer 553 00:26:34,940 --> 00:26:37,099 ahora es en la rama del sí 554 00:26:37,099 --> 00:26:38,200 en la que no puede hacer nada 555 00:26:38,200 --> 00:26:39,920 porque si es mayor o igual que 10 no hagas nada 556 00:26:39,920 --> 00:26:42,839 y es en la rama del no 557 00:26:42,839 --> 00:26:44,880 en la de menor que 10 en la que me saludaría 558 00:26:44,880 --> 00:26:45,160 ¿verdad? 559 00:26:46,079 --> 00:26:48,180 entonces si yo he puesto la condición al revés 560 00:26:48,180 --> 00:26:51,619 esta es la que se queda vacía 561 00:26:51,619 --> 00:26:53,420 y esta es la que tiene el contenido 562 00:26:53,420 --> 00:26:55,960 ¿verdad? si es que la he puesto al revés 563 00:26:55,960 --> 00:26:59,279 vale, entonces yo digo 564 00:26:59,279 --> 00:27:02,279 uy, esta se ha quedado vacía 565 00:27:02,279 --> 00:27:04,359 ¿la puedo quitar igual que antes 566 00:27:04,359 --> 00:27:05,940 quité el else cuando se quitó vacío? 567 00:27:06,440 --> 00:27:06,759 no 568 00:27:06,759 --> 00:27:09,319 la del if no se puede quitar 569 00:27:09,319 --> 00:27:10,920 si está vacía, pues la dejas vacía 570 00:27:10,920 --> 00:27:13,359 ¿por qué no se puede quitar? 571 00:27:13,640 --> 00:27:15,640 hombre, pues porque es la que tiene la condición 572 00:27:15,640 --> 00:27:17,299 si yo la quito 573 00:27:17,299 --> 00:27:18,900 ¿dónde pongo la condición? en el se, no 574 00:27:18,900 --> 00:27:20,299 esa es la sintaxis, no me lo permite 575 00:27:20,299 --> 00:27:23,519 entonces la rama del if, aunque en el caso 576 00:27:23,519 --> 00:27:24,099 del si 577 00:27:24,099 --> 00:27:27,579 aunque yo tenga una 578 00:27:27,579 --> 00:27:29,220 que en la del si 579 00:27:29,220 --> 00:27:31,440 sea en la que no haga nada 580 00:27:31,440 --> 00:27:33,500 y en la del no sea en la que 581 00:27:33,500 --> 00:27:35,559 haga cosas, como es este 582 00:27:35,559 --> 00:27:37,640 caso, en la del si no hace nada 583 00:27:37,640 --> 00:27:39,059 y en la del no, no hace cosas 584 00:27:39,059 --> 00:27:40,480 o sea, este diagrama es esto 585 00:27:40,480 --> 00:27:42,160 aunque lo tenga 586 00:27:42,160 --> 00:27:44,039 el if no lo puedo quitar 587 00:27:44,039 --> 00:27:46,940 se queda ahí vacío, no hace nada 588 00:27:46,940 --> 00:27:53,400 pero claro, efectivamente 589 00:27:53,400 --> 00:27:55,440 este programa 590 00:27:55,440 --> 00:27:56,519 con un if vacío 591 00:27:56,519 --> 00:27:58,539 aunque funciona y hace 592 00:27:58,539 --> 00:28:00,900 lo mismo que hacía el otro 593 00:28:00,900 --> 00:28:03,140 hace lo mismo, lo que pasa es que al haber cambiado la condición 594 00:28:03,140 --> 00:28:04,420 he cambiado una rama por la otra 595 00:28:04,420 --> 00:28:07,000 aunque funciona y hace lo mismo 596 00:28:07,000 --> 00:28:08,880 introduzca su nombre 597 00:28:08,880 --> 00:28:10,380 aquí me va a saludar, muy bien 598 00:28:10,380 --> 00:28:12,400 Pero si pongo uno muy largo 599 00:28:12,400 --> 00:28:14,359 Pues aquí no me va a saludar 600 00:28:14,359 --> 00:28:16,859 No me saluda y terminó 601 00:28:16,859 --> 00:28:17,700 Aunque hace lo mismo 602 00:28:17,700 --> 00:28:20,799 Este código sería muy feo a la vista 603 00:28:20,799 --> 00:28:22,299 Tú ves esto y dices 604 00:28:22,299 --> 00:28:24,660 Jolín, un if sin nada adentro, que horrible 605 00:28:24,660 --> 00:28:26,819 Porque un if 606 00:28:26,819 --> 00:28:28,059 Sin el else colgando 607 00:28:28,059 --> 00:28:30,160 Es bonito, está bien, lo ves y dices 608 00:28:30,160 --> 00:28:32,799 Pero un if sin nada adentro 609 00:28:32,799 --> 00:28:34,579 Y el else con cosas 610 00:28:34,579 --> 00:28:36,240 Esto a la vista es bastante feo 611 00:28:36,240 --> 00:28:39,039 Pero claro, hay una forma muy fácil de arreglarlo 612 00:28:39,039 --> 00:28:43,900 ¿Cómo lo arreglamos para que sea el if el que tenga las cosas y el else el vacío? 613 00:28:45,799 --> 00:28:49,920 Poniendo la condición contraria, ya está. 614 00:28:50,059 --> 00:28:54,680 Si yo identifico que me ha quedado un if vacío y un else con cosas, ¡qué feo! 615 00:28:55,319 --> 00:28:57,980 Pues hago el negado de la condición. 616 00:28:58,259 --> 00:29:01,799 El negado, la condición justo opuesta, la negada. 617 00:29:02,960 --> 00:29:06,460 Y si yo niego esta condición, entonces esto pasa aquí. 618 00:29:06,460 --> 00:29:09,400 y el que se queda vacío es el otro 619 00:29:09,400 --> 00:29:11,599 ¿verdad? si pongo la condición 620 00:29:11,599 --> 00:29:12,940 justo opuesta 621 00:29:12,940 --> 00:29:15,579 ¿cómo puedo negar 622 00:29:15,579 --> 00:29:16,839 fácilmente una condición? 623 00:29:17,440 --> 00:29:19,539 con el operador no delante 624 00:29:19,539 --> 00:29:20,819 es decir 625 00:29:20,819 --> 00:29:22,759 si yo pongo esto 626 00:29:22,759 --> 00:29:25,740 ¡ala! ya negué 627 00:29:25,740 --> 00:29:26,619 mi condición 628 00:29:26,619 --> 00:29:30,039 la negué, voy a poner entre paréntesis 629 00:29:30,039 --> 00:29:31,720 claro, para que se vea que estoy negando 630 00:29:31,720 --> 00:29:32,599 todo eso, ¿veis? 631 00:29:33,160 --> 00:29:35,220 ese es el operador que niega una condición 632 00:29:35,220 --> 00:29:37,079 negada 633 00:29:37,079 --> 00:29:40,019 si no se cumple toda esta 634 00:29:40,019 --> 00:29:41,859 negada, pues entonces si yo la niego 635 00:29:41,859 --> 00:29:43,079 automáticamente 636 00:29:43,079 --> 00:29:44,980 esto pasa arriba 637 00:29:44,980 --> 00:29:48,000 y el else es el que se queda vacío 638 00:29:48,000 --> 00:29:50,339 si yo pongo la condición 639 00:29:50,339 --> 00:29:51,920 negada, justo la opuesta 640 00:29:51,920 --> 00:29:54,400 y yo siempre puedo negar una condición 641 00:29:54,400 --> 00:29:55,500 poniendo el no delante 642 00:29:55,500 --> 00:29:58,019 poniendo el no, si yo la niego 643 00:29:58,019 --> 00:29:59,759 lo del else pasa al if 644 00:29:59,759 --> 00:30:01,480 y lo del if pasa al else 645 00:30:01,480 --> 00:30:03,720 entonces ahora ya esto me queda más bonito 646 00:30:03,720 --> 00:30:05,519 y el else ya lo podría quitar 647 00:30:05,519 --> 00:30:07,180 este else ya 648 00:30:07,180 --> 00:30:09,160 se podría eliminar 649 00:30:09,160 --> 00:30:11,460 ¿vale? y ya esto me queda un código 650 00:30:11,460 --> 00:30:12,039 más bonito 651 00:30:12,039 --> 00:30:17,589 ahora ya sí 652 00:30:17,589 --> 00:30:22,609 a ver, otra cosa es que 653 00:30:22,609 --> 00:30:24,349 luego vea yo la condición como me queda 654 00:30:24,349 --> 00:30:26,390 y mire a ver, oye voy a reescribir la manchula 655 00:30:26,390 --> 00:30:28,630 porque me ha quedado muy fea, hombre pues decir 656 00:30:28,630 --> 00:30:30,809 no es el nombre 657 00:30:30,809 --> 00:30:32,109 mayor o igual que 10 658 00:30:32,109 --> 00:30:34,569 es igual que decir y me va a quedar 659 00:30:34,569 --> 00:30:36,250 más bonito, ¿verdad? 660 00:30:36,250 --> 00:30:37,470 esto es lo mismo 661 00:30:37,470 --> 00:30:40,670 que decir lo que hemos escrito antes 662 00:30:40,670 --> 00:30:43,470 nombre.le 663 00:30:43,470 --> 00:30:46,529 menor que 10 664 00:30:46,529 --> 00:30:48,309 es decir, no 665 00:30:48,309 --> 00:30:50,049 mayor o igual que 10 666 00:30:50,049 --> 00:30:52,970 es lo mismo que decir menor que 10 667 00:30:52,970 --> 00:30:54,089 pues hombre 668 00:30:54,089 --> 00:30:56,690 esta condición, aun siendo 669 00:30:56,690 --> 00:30:57,970 idéntica a esta 670 00:30:57,970 --> 00:30:59,390 aun siendo idéntica 671 00:30:59,390 --> 00:31:01,369 es más fea que esta 672 00:31:01,369 --> 00:31:03,230 es más fea, aun siendo idéntica 673 00:31:03,230 --> 00:31:03,910 siendo lo mismo 674 00:31:03,910 --> 00:31:07,730 no eres mayor de 23 años 675 00:31:07,730 --> 00:31:10,029 eres menor de 23 676 00:31:10,029 --> 00:31:11,369 es lo mismo 677 00:31:11,369 --> 00:31:13,109 significa lo mismo 678 00:31:13,109 --> 00:31:16,470 pondríamos esta 679 00:31:16,470 --> 00:31:18,869 pero a ver, lo que yo quería decir ahora es 680 00:31:18,869 --> 00:31:20,750 que si tú tienes una condición, la que sea 681 00:31:20,750 --> 00:31:22,069 y la niegas 682 00:31:22,069 --> 00:31:25,069 y la niegas, pues lógicamente 683 00:31:25,069 --> 00:31:26,490 lo del ELSE 684 00:31:26,490 --> 00:31:29,470 se convierte en el IF y lo del IF pasa al ELSE 685 00:31:29,470 --> 00:31:31,009 entonces siempre puedes 686 00:31:31,009 --> 00:31:33,450 intercambiar la rama del sí 687 00:31:33,450 --> 00:31:35,490 con la del no, negando la condición 688 00:31:35,490 --> 00:31:37,630 y así la dejas 689 00:31:37,630 --> 00:31:39,329 lo dejas más bonito, si es que lo quieres 690 00:31:39,329 --> 00:31:41,410 dejar más bonito, porque el leaf se había quedado vacío 691 00:31:41,410 --> 00:31:42,609 como fuera 692 00:31:42,609 --> 00:31:47,140 vale 693 00:31:47,140 --> 00:31:53,839 pues vamos a ver que enunciados 694 00:31:53,839 --> 00:31:54,740 tenemos por aquí 695 00:31:54,740 --> 00:31:58,279 para 696 00:31:58,279 --> 00:32:01,359 que podáis arrancar a hacer antes 697 00:32:01,359 --> 00:32:03,160 porque hay muchas modificaciones 698 00:32:03,160 --> 00:32:05,220 y un montón de casuísticas y un montón de cosas 699 00:32:05,220 --> 00:32:06,940 con la incidencia de decisión que hay que seguir viendo 700 00:32:06,940 --> 00:32:11,059 Pero bueno, entonces seguir con el rollo y vamos a ver qué cosa hay por aquí para que