1 00:00:00,620 --> 00:00:03,899 vale, operador ternario 2 00:00:03,899 --> 00:00:06,780 vamos a ponerlo en una clase aparte 3 00:00:06,780 --> 00:00:22,100 este proyecto de ejemplo operadores 4 00:00:22,100 --> 00:00:24,820 sí que lo voy a dejar subido por si acaso 5 00:00:24,820 --> 00:00:28,219 porque el primero de ejemplo variables quedó un poco raro 6 00:00:28,219 --> 00:00:30,339 entonces, pero este está un poquito más organizado 7 00:00:30,339 --> 00:00:43,539 vale, sí 8 00:00:43,539 --> 00:00:47,840 estamos nosotros comentando sin ningún criterio 9 00:00:47,840 --> 00:00:49,880 ni pauta ni nada, vale 10 00:00:49,880 --> 00:00:52,740 porque bueno, no podemos de repente 11 00:00:52,740 --> 00:00:54,539 ser profesionales desde el principio 12 00:00:54,539 --> 00:00:56,100 nos quedan muchos años 13 00:00:56,100 --> 00:00:58,359 respecto a 14 00:00:58,359 --> 00:01:00,600 generación de documentación, o sea, tenéis 15 00:01:00,600 --> 00:01:01,880 una asignatura de entornos de desarrollo 16 00:01:01,880 --> 00:01:04,599 que esa asignatura, pues como ya intuís 17 00:01:04,599 --> 00:01:06,739 y sabéis, se ocupa 18 00:01:06,739 --> 00:01:08,760 de todas las tareas 19 00:01:08,760 --> 00:01:10,519 complementarias a esta 20 00:01:10,519 --> 00:01:12,719 ¿vale? nosotros vamos a aprender 21 00:01:12,719 --> 00:01:13,799 a programar 22 00:01:13,799 --> 00:01:15,019 punto pelota 23 00:01:15,019 --> 00:01:18,439 pero programar forma parte de 24 00:01:18,439 --> 00:01:20,280 toda una tarea de desarrollo 25 00:01:20,280 --> 00:01:22,700 que necesita más cosas 26 00:01:22,700 --> 00:01:23,739 pues por ejemplo 27 00:01:23,739 --> 00:01:26,500 uno cuando programa genera una documentación 28 00:01:26,500 --> 00:01:27,319 lógicamente 29 00:01:27,319 --> 00:01:29,599 eso lo veis en tonos de desarrollo 30 00:01:29,599 --> 00:01:31,239 uno antes de programar 31 00:01:31,239 --> 00:01:33,599 ha tenido que hacer un buen análisis 32 00:01:33,599 --> 00:01:35,680 y un buen diseño y generar unos documentos 33 00:01:35,680 --> 00:01:37,040 UML y todo eso 34 00:01:37,040 --> 00:01:38,900 pues eso lo veis en tonos de desarrollo 35 00:01:38,900 --> 00:01:41,200 cuando uno programa y desarrolla 36 00:01:41,200 --> 00:01:43,260 pues normalmente lo hace en equipo 37 00:01:43,260 --> 00:01:45,620 con más gente y la mejor manera 38 00:01:45,620 --> 00:01:47,420 de funcionar es que tengan un 39 00:01:47,420 --> 00:01:49,340 repositorio común, como el github 40 00:01:49,340 --> 00:01:51,260 pues como desarrolla uno 41 00:01:51,260 --> 00:01:53,379 sincronizándose con repositorios, pues también 42 00:01:53,379 --> 00:01:55,560 entonces hay una serie de tareas complementarias 43 00:01:55,560 --> 00:01:57,560 a programar 44 00:01:57,560 --> 00:01:59,280 sin más, que es la que nos ocupamos nosotros 45 00:01:59,280 --> 00:02:01,019 que veis en ese módulo 46 00:02:01,019 --> 00:02:01,579 ¿vale? 47 00:02:02,920 --> 00:02:04,420 no quede tiempo en dos horas, claro 48 00:02:04,420 --> 00:02:05,900 venga, pues a ver 49 00:02:05,900 --> 00:02:08,979 operador, este es el operador famoso 50 00:02:08,979 --> 00:02:13,900 esto viene a ser un if 51 00:02:13,900 --> 00:02:16,400 si entendemos esto, entendemos el if 52 00:02:16,400 --> 00:02:16,879 y ya está 53 00:02:16,879 --> 00:02:19,560 que lo vamos a entender 54 00:02:19,560 --> 00:02:31,000 Vale, esto lo podemos llamar es una asignación condicionada, ¿vale? 55 00:02:32,259 --> 00:02:34,280 Es una asignación condicionada. 56 00:02:34,379 --> 00:02:36,419 ¿Qué es esto de una asignación condicionada? 57 00:02:36,979 --> 00:02:39,180 Una asignación sabemos lo que es, ¿verdad? 58 00:02:40,199 --> 00:02:41,939 Una asignación es esto. 59 00:02:42,080 --> 00:02:48,860 Yo tengo un número y a mi número, mediante una sentencia de asignación, 60 00:02:48,860 --> 00:02:53,060 mediante una sentencia de asignación 61 00:02:53,060 --> 00:02:55,159 con el operador igual 62 00:02:55,159 --> 00:02:56,400 le asigno 63 00:02:56,400 --> 00:02:57,599 lo que yo quiera 64 00:02:57,599 --> 00:02:59,620 ya está 65 00:02:59,620 --> 00:03:03,319 esto o una expresión 66 00:03:03,319 --> 00:03:05,319 uy que escándalo 67 00:03:05,319 --> 00:03:07,500 o una expresión 68 00:03:07,500 --> 00:03:08,879 con operadores 69 00:03:08,879 --> 00:03:09,479 lo que sea 70 00:03:09,479 --> 00:03:11,020 vale 71 00:03:11,020 --> 00:03:25,069 Ni dentro de clase tampoco se gritan 72 00:03:25,069 --> 00:03:26,590 Bueno 73 00:03:26,590 --> 00:03:28,949 Pues a lo mejor nosotros 74 00:03:28,949 --> 00:03:30,250 Podemos querer 75 00:03:30,250 --> 00:03:33,330 En lugar de hacer una asignación tal cual 76 00:03:33,330 --> 00:03:35,650 A número le asigno 78 77 00:03:35,650 --> 00:03:37,189 En lugar de eso 78 00:03:37,189 --> 00:03:39,490 Ahora que ya sabemos 79 00:03:39,490 --> 00:03:40,430 Lo que son las condiciones 80 00:03:40,430 --> 00:03:43,349 yo puedo decidir, oye, voy a asignar una cosa 81 00:03:43,349 --> 00:03:45,389 o voy a asignar la otra 82 00:03:45,389 --> 00:03:47,569 en función de una condición 83 00:03:47,569 --> 00:03:49,590 eso es una asignación 84 00:03:49,590 --> 00:03:51,449 condicionada, porque en función 85 00:03:51,449 --> 00:03:52,530 de una condición 86 00:03:52,530 --> 00:03:55,629 o asigno una cosa o asigno otra 87 00:03:55,629 --> 00:03:57,310 es muy 88 00:03:57,310 --> 00:03:58,110 útil 89 00:03:58,110 --> 00:04:00,949 continuamente estamos haciendo asignaciones 90 00:04:00,949 --> 00:04:03,009 entonces muchísimas veces 91 00:04:03,009 --> 00:04:04,509 esa asignación 92 00:04:04,509 --> 00:04:07,449 yo quiero usar un valor 93 00:04:07,449 --> 00:04:09,169 o usar otro en función de una condición 94 00:04:09,169 --> 00:04:10,930 es algo que va a aparecer todo el rato 95 00:04:10,930 --> 00:04:13,250 pues para no tener que usar 96 00:04:13,250 --> 00:04:14,650 todo el rato el famoso if 97 00:04:14,650 --> 00:04:16,589 que veremos después 98 00:04:16,589 --> 00:04:18,990 que me alarga el código en unas cuantas líneas 99 00:04:18,990 --> 00:04:20,949 para no tener que usar todo el rato el if para eso 100 00:04:20,949 --> 00:04:23,230 pues hay una abreviatura 101 00:04:23,230 --> 00:04:25,129 de esa asignación condicionada 102 00:04:25,129 --> 00:04:25,930 que es este operador 103 00:04:25,930 --> 00:04:27,610 por ejemplo 104 00:04:27,610 --> 00:04:30,569 imaginaos un 105 00:04:30,569 --> 00:04:32,370 pues eso, un programa 106 00:04:32,370 --> 00:04:33,709 que 107 00:04:33,709 --> 00:04:38,009 asigna 108 00:04:38,009 --> 00:04:59,269 a una cadena el valor, como siempre, para no complicarnos la vida, mayor de edad o menor de edad 109 00:04:59,269 --> 00:05:18,680 en función de una edad numérica. Bueno, pues aquí este programa, este programa su resultado es asignar, 110 00:05:18,680 --> 00:05:37,560 Ya lo sabemos, a una variable string, este es el resultado, aquí va a ir el resultado, pues el resultado de mi programa es asignar a esta variable string algo, asignarle algo, pero ¿el qué? ¿Qué le asigno yo a esa variable string mía? 111 00:05:37,560 --> 00:05:45,319 ¿qué le asigno yo a esa variable 112 00:05:45,319 --> 00:05:47,019 string mía para luego mostrarla? 113 00:05:47,660 --> 00:05:49,199 pues es que no lo sé, porque el programa 114 00:05:49,199 --> 00:05:50,720 me ha dicho que le asignes 115 00:05:50,720 --> 00:05:53,220 mayor de edad o le asignes menor 116 00:05:53,220 --> 00:05:55,279 de edad, dices ya, no, pero es que una asignación 117 00:05:55,279 --> 00:05:56,279 es una asignación 118 00:05:56,279 --> 00:05:59,100 a mí dime qué le pongo a eso 119 00:05:59,100 --> 00:06:01,319 no me digas ponle esto o ponle lo otro 120 00:06:01,319 --> 00:06:02,199 dime qué le pongo 121 00:06:02,199 --> 00:06:04,959 así es como hemos funcionado hasta ahora 122 00:06:04,959 --> 00:06:07,259 a una variable le dábamos 123 00:06:07,259 --> 00:06:09,459 un valor, así hemos funcionado hasta ahora 124 00:06:09,459 --> 00:06:26,060 Vale, pues podemos ampliarlo y decir, bueno, espérate, no seas tan radical. Permite al menos asignar dos posibilidades y asigna una o asigna la otra en función de una condición. 125 00:06:26,060 --> 00:06:29,379 ¿Vale? ¿Cómo hacemos esa asignación condicionada? 126 00:06:30,160 --> 00:06:33,339 Primero, vamos a ver de qué condición estamos hablando 127 00:06:33,339 --> 00:06:42,209 Bueno, pues esa condición hemos dicho que estamos hablando 128 00:06:42,209 --> 00:06:46,410 De ser mayor de edad en función de una edad numérica 129 00:06:46,410 --> 00:06:49,389 Vale, para hacer el programa un poco con más sentido 130 00:06:49,389 --> 00:06:51,129 Vamos a leer la edad desde el teclado 131 00:06:51,129 --> 00:07:02,779 Vamos a leer la edad desde el teclado 132 00:07:02,779 --> 00:07:07,550 Ni mensajito ni nada 133 00:07:07,550 --> 00:07:08,850 Que nos queremos ir 134 00:07:08,850 --> 00:07:13,769 Y aquí se me ha olvidado 135 00:07:13,769 --> 00:07:14,589 Vale 136 00:07:14,589 --> 00:07:17,370 Vale, ya tenemos la edad leída 137 00:07:17,370 --> 00:07:21,589 La condición que marca qué asignación voy a hacer 138 00:07:21,589 --> 00:07:26,670 Si una o la otra, la condición es que la edad sea mayor o igual de 18 139 00:07:26,670 --> 00:07:29,370 Condición fácil de poner 140 00:07:29,370 --> 00:07:33,589 Vale, pues ahora ya viene la asignación condicionada 141 00:07:33,589 --> 00:07:35,269 ¿Qué es? ¿Yo aquí qué asigno? 142 00:07:35,990 --> 00:07:37,209 Porque tengo dos opciones 143 00:07:37,209 --> 00:07:39,649 O bien asigno mayor de edad 144 00:07:39,649 --> 00:07:42,810 O bien esta otra cosa 145 00:07:42,810 --> 00:07:45,069 no lo sé 146 00:07:45,069 --> 00:07:47,269 ¿cuál asigno de las dos? 147 00:07:48,290 --> 00:07:50,370 vale, pues para expresar la asignación 148 00:07:50,370 --> 00:07:52,050 condicionada o una o la otra 149 00:07:52,050 --> 00:07:54,610 las dos posibilidades 150 00:07:54,610 --> 00:07:56,410 las separamos 151 00:07:56,410 --> 00:07:57,230 con dos puntos 152 00:07:57,230 --> 00:08:00,490 ¿vale? para decir o una o la otra 153 00:08:00,490 --> 00:08:01,829 no sé cuál de las dos 154 00:08:01,829 --> 00:08:03,569 vale, pues ¿de qué depende? 155 00:08:04,269 --> 00:08:06,009 pues ponemos la condición delante 156 00:08:06,009 --> 00:08:08,529 seguida del simbolito interrogación 157 00:08:08,529 --> 00:08:10,689 y ya está 158 00:08:10,689 --> 00:08:15,769 La pongo aquí abajo para que se vea mejor 159 00:08:15,769 --> 00:08:19,509 Pues esto es una asignación 160 00:08:19,509 --> 00:08:22,730 Es una asignación que tiene dos posibilidades 161 00:08:22,730 --> 00:08:25,889 O esta que está antes de los dos puntos 162 00:08:25,889 --> 00:08:28,550 O esta que está detrás de los dos puntos 163 00:08:28,550 --> 00:08:32,350 ¿Y de qué depende que se asigne una o se asigne la otra? 164 00:08:33,129 --> 00:08:37,429 De la condición que hay aquí justo antes de la interrogación 165 00:08:37,429 --> 00:08:41,330 entonces la interrogación esta es lo que se llama 166 00:08:41,330 --> 00:08:42,990 el operador ternario, es una tontería 167 00:08:42,990 --> 00:08:44,110 porque 168 00:08:44,110 --> 00:08:47,730 ternario ¿por qué? porque mezcla tres cosas 169 00:08:47,730 --> 00:08:50,889 mezcla una condición 170 00:08:50,889 --> 00:08:52,409 con un posible valor 171 00:08:52,409 --> 00:08:54,110 con otro posible valor 172 00:08:54,110 --> 00:08:57,049 entonces la interrogación va 173 00:08:57,049 --> 00:08:59,909 siempre obligatoriamente detrás de la condición 174 00:08:59,909 --> 00:09:02,370 y luego se me abren dos posibilidades 175 00:09:02,370 --> 00:09:06,129 pues esas dos posibilidades entre dos puntos 176 00:09:06,129 --> 00:09:17,629 Luego esta es una asignación que a veces a resultado irá mayor de edad, pero a veces irá menor de edad. 177 00:09:17,970 --> 00:09:22,470 Depende. ¿Y de qué depende? Depende de esto, que yo he puesto delante. 178 00:09:23,750 --> 00:09:25,470 Por eso es una asignación condicionada. 179 00:09:30,179 --> 00:09:38,769 Entonces si ejecutamos esto, pues este se me queda aquí esperando edad. 180 00:09:39,429 --> 00:09:42,070 Pues venga, tres años, menor de edad. 181 00:09:42,070 --> 00:09:44,990 volvemos a ejecutar 182 00:09:44,990 --> 00:09:45,889 65 183 00:09:45,889 --> 00:09:47,909 mayor de edad 184 00:09:47,909 --> 00:09:50,830 entonces lógicamente lo que asigne al resultado 185 00:09:50,830 --> 00:09:52,950 que lo estoy mostrando después 186 00:09:52,950 --> 00:09:54,230 lo que asigna 187 00:09:54,230 --> 00:09:57,490 es esto o es esto otro 188 00:09:57,490 --> 00:09:59,129 y depende 189 00:09:59,129 --> 00:10:01,090 de la condición que yo he puesto delante 190 00:10:01,090 --> 00:10:08,210 entonces una situación así 191 00:10:08,210 --> 00:10:09,230 se nos da muy a menudo 192 00:10:09,230 --> 00:10:11,370 yo tengo que asignar un valor a una variable 193 00:10:11,370 --> 00:10:13,690 pero ese valor tiene dos posibilidades 194 00:10:13,690 --> 00:10:14,950 que dependen de una condición 195 00:10:14,950 --> 00:10:17,029 pues lo pongo así 196 00:10:17,029 --> 00:10:23,039 y ya está, vale, no hace falta 197 00:10:23,039 --> 00:10:24,220 y con esto ya nos vamos 198 00:10:24,220 --> 00:10:27,000 que la condición la pongamos en una 199 00:10:27,000 --> 00:10:28,039 variable aparte 200 00:10:28,039 --> 00:10:31,039 no hace falta, la propia condición 201 00:10:31,039 --> 00:10:31,919 la podría yo 202 00:10:31,919 --> 00:10:34,860 poner ahí dentro, es decir, esto 203 00:10:34,860 --> 00:10:36,860 y esto que voy a poner aquí abajo 204 00:10:36,860 --> 00:10:38,899 es lo mismo 205 00:10:38,899 --> 00:10:41,019 es decir, la propia condición 206 00:10:41,019 --> 00:10:42,360 la propia condición 207 00:10:42,360 --> 00:10:43,779 la puedo plantar aquí 208 00:10:43,779 --> 00:10:46,299 pasa nada 209 00:10:46,299 --> 00:10:49,320 vale, me da igual, no tengo que usar una variable 210 00:10:49,320 --> 00:10:50,659 adicional, no hace falta 211 00:10:50,659 --> 00:10:52,639 pongo aquí, es como 212 00:10:52,639 --> 00:10:54,460 que n vale 3 213 00:10:54,460 --> 00:10:56,259 uso el 3 o uso n 214 00:10:56,259 --> 00:10:59,220 bueno, pues si ya sabes que es 3, pon el 3 directamente 215 00:10:59,220 --> 00:11:01,360 no pongas n que a su vez contiene 3 216 00:11:01,360 --> 00:11:02,639 pues esto igual 217 00:11:02,639 --> 00:11:04,759 no hace falta que yo declaro 218 00:11:04,759 --> 00:11:07,080 una variable adicional, ahí ocupando memoria 219 00:11:07,080 --> 00:11:09,059 si la condición 220 00:11:09,059 --> 00:11:10,059 sé que es esta 221 00:11:10,059 --> 00:11:13,080 pues bueno, pongo ahí la condición y ya está 222 00:11:13,080 --> 00:11:17,210 pero si se cumple es la primera 223 00:11:17,210 --> 00:11:19,909 Si se cumple es la primera, la que se asigna. 224 00:11:20,509 --> 00:11:22,070 Y si no se asigna, la segunda. 225 00:11:22,850 --> 00:11:24,289 Siempre hay que poner las dos opciones. 226 00:11:24,529 --> 00:11:26,370 No puedo dejar una opción sin rellenar. 227 00:11:27,090 --> 00:11:30,389 O sea, si yo quiero que se asigne la cadena vacía, pues pongo la cadena vacía. 228 00:11:30,509 --> 00:11:32,750 Pero algo tengo que poner después de los dos puntos. 229 00:11:34,090 --> 00:11:34,490 ¿Vale? 230 00:11:36,370 --> 00:11:37,929 Venga, y ahora ya sí que nos vamos.