[MÚSICA] Hola. En esta lección vamos a aprender cómo hacer que nuestro programa tome decisiones en situaciones más complejas, cuando hay varias condiciones y varios posibles caminos que tomar. Esto lo haremos a través de la instrucción if con el if. Como hemos hablado anteriormente, las personas tomamos decisiones dependiendo de las circunstancias en que estemos. [AUDIO EN BLANCO] Por ejemplo, supongamos que estoy en mi casa y quiero salir. Antes de salir voy a revisar la temperatura actual y veré también si está lloviendo. A partir de estos datos tomaré decisiones, mis decisiones podrían ser por ejemplo las siguientes, si hace frío y está lloviendo voy a salir abrigada y con paraguas. Si hace frío pero no llueve, solamente saldré bien abrigada. Y si no hace frío saldré sin abrigo y sin paraguas, asumiendo que en el peor caso si llueve, al menos no tendré frío. En nuestros programas también necesitaremos ser capaces de modelar este comportamiento. Entonces, nuestro objetivo en esta lección será lograr que el programa decida qué camino tomar cuando hay más de dos opciones. Para el problema anterior la verdad es que podríamos usar if y else anidados, es decir un if dentro de otro. Por ejemplo, primero pregunto si hace frío o no, podríamos decidir que hacer frío es que la temperatura sea menor a 18 grados. Si hace frío, es decir, si esta condición es verdadera, entonces recién me voy a preguntar si es que va a llover. Y luego si llueve usaré paraguas y abrigo, y si no llueve solo saldré abrigada. Por otro lado, si no hacía frío, es decir, si no se cumpliera la condición de que la temperatura fuera menor a 18, significa que serán 18 grados o más, en ese caso no saldré ni con abrigo ni con paraguas. Aquí tenemos el ejemplo anterior con un if else anidado. Primero, definimos nuestras variables. Por ejemplo, si llueve o no lo definimos con un boolean que podría ser true o false, en este caso está definido como true. Luego, le pedimos al usuario que ingrese la temperatura, y ahora tenemos nuestro primer if. Si la temperatura es menor a 18. Si esto es verdadero entonces entramos al if y dentro del if nos encontramos con otro if anidado que pregunta si llueve o no llueve, imprimiendo lo que corresponde en cada caso. Ahora, si la temperatura no era menor a 18, entonces iremos alelse del primer if que es el que abarca el caso que la temperatura sea mayor o igual a 18. En ese caso imprimiremos que no necesitamos ni paraguas ni abrigo. Sin embargo, si tuviéramos muchas opciones más, por ejemplo la opción de llevar gotas de agua si es que llueve y hay charcos o la opción de que haya nieve o no la haya, un código como este se vuelve demasiado complejo. Es por esto que en esta lección veremos el concepto de el if que nos permite escribir un código como este pero de manera más ordenada y clara. La instrucción if con el if permite que nuestro código se comporte de la siguiente manera, primero veamos el siguiente cuadro. En él se dice, si es que se cumple la condición1 entonces ejecutaremos la instrucción1. O el conjunto de instrucciones que estén dentro de ese if. Si no, si es que se cumple la condición2 entonces ejecutaremos la instrucción2. Si no se cumple ninguna de las anteriores, es decir condición1 y condición2 son falsas, entonces ejecutaremos la instrucción3. Ahora veamos lo mismo pero en un diagrama. [AUDIO EN BLANCO] Bueno, aquí vemos que se evalúa la condición1. Si es que esta se cumple, es decir es verdadera, entonces pasaremos a la instrucción1 y luego nos saltaremos todas las otras condiciones e instrucciones pasando al código que venga después del bloque if, elif else del programa. Ahora, ¿qué pasa si la condición1 era falsa? Entonces pasaremos a evaluar la segunda condición, es decir condición2, la que va en el elif. Si es que es verdadera, ejecutaremos la instrucción2 y luego seguiremos con el programa si ver ninguna otra condición o instrucción. Finalmente, si es que la condición2 era falsa, pasaremos al else, que significa si ninguna de las condiciones anteriores se cumplía, entonces se ejecutará la instrucción3 y luego continúa el flujo del programa normalmente. Podemos escribir en general cuantos elif queramos. En un caso como este código, lo que estamos diciendo es que si se cumple la condición1, entonces se ejecutarán las instrucciones1. Si no se cumple condición1, entonces si se cumple la condición2, ejecutaremos la instrucción2. Si no habíamos entrado ni al if, ni al elif anterior, entonces evaluaremos la condición3. Y si esta se cumple, ejecutaremos la instrucción3, y así se pueden incluir tantos elif como queramos. Finalmente, si no se cumple ninguna condición de las anteriores, se ejecutarán las instrucciones que vengan dentro del else, en este caso instrucciónN. Pero al igual que cuando hay un if con solo un else, el incluir el else es opcional. Es decir, podría decir perfectamente válido tener una instrucción if con elif con una estructura como esta. Es decir, que al final no tenga else y que si no se cumple ni la condición1, ni la condición2, ni la condición3, no haga nada. Entonces, ahora podemos escribir nuestro programa usando elif. Primero, tenemos nuestras variables llueve y temperatura. Luego, pondremos las mismas condiciones anteriores y en el mismo orden. Si la temperatura es menor a 18 y además llueve, entonces imprimiremos llevaré paraguas y abrigo. Si no, si es que la temperatura es menor a 18 y no llueve, imprimiremos solo llevaré abrigo. Y finalmente si ninguna de las condiciones anteriores se cumplen, la única opción que nos queda es que no haga frío, es decir que la temperatura sea mayor o igual a 18 y por eso diremos que no llevaremos ni paraguas ni abrigo. Ahora, puede que reordenar nuestras condiciones nos entregue un programa más sencillo, en especial si es que podemos descartar algunos casos en conjunto de una sola vez. Por ejemplo, en este programa de nuevo primero definimos nuestras variables pero las condiciones luego las ingresaremos en un orden distinto. Primero vamos a evaluar la condición más sencilla, dado que si la temperatura es mayor o igual a 18, sé inmediatamente que no llevaré paraguas ni abrigo, sin necesidad de preguntarme si es que llueve o no. Si no entra el if anterior, you estoy segura que la temperatura es menor a 18. Por lo tanto, lo único que me queda es en el elif preguntar si es que llueve o no llueve. Primero aquí estoy viendo la condición de que llueva, en ese caso voy a imprimir que llevo paraguas y abrigo. Y si no entré a ninguno de los if o el elif anterior, la única opción que queda es que la temperatura sea maryor a 18, pues no entré al primer if y que además no llueva pues no entré al elif, por lo que simplemente digo solo llevaré abrigo. Bueno, en esta lección hemos aprendido que podemos utilizar if con elif y else cuando tenemos varias condiciones e instrucciones asociadas y queremos que se escoja solamente una. De esta manera, nuestro código nos permitirá especificar que si se cumple la condición1 ejecutaremos las instrucciones1 y si no, si se cumple la condición2, las instrucciones2, y así sucesivamente. Esta es una alternativa a usar if con else anidados que permite usar indentación menos compleja y por lo tanto es recomendable usar en estas situaciones dado que el código queda más fácil de entender. Muchas gracias. [AUDIO EN BLANCO]