7.6. Condicionales anidados
Una condición puede anidarse dentro de otra. Por ejemplo, supongamos que tenemos dos variables enteras, x xe y y. El siguiente patrón de selección muestra cómo podríamos determinar su relación.
if x < y:
    print("x is less than y")
else:
    if x > y:
        print("x is greater than y")
    else:
        print("x and y must be equal")
La condición externa tiene dos ramas. La segunda rama (el "else" de la condición externa) contiene otra ifinstrucción, que a su vez tiene dos ramas. Estas dos ramas también podrían contener instrucciones condicionales.
El flujo de control para este ejemplo se puede ver en esta ilustración de diagrama de flujo.

Aquí tienes un programa completo que define los valores de `x` xe `y` y. Ejecuta el programa y observa el resultado. Luego, cambia los valores de las variables para modificar el flujo de control.
>>x = 10 # se almacena en la variable x un valor de tipo entero
>>y = 10 # se almacena en la variable y un valor de tipo entero
>>if x < y:
>> print("x is less than y")
>>else:
>> if x > y:
>> print("x is greater than y")
>> else:
>> print("x and y must be equal")
Nota
En algunos lenguajes de programación, relacionar las instrucciones `if` y `else` resulta problemático. Sin embargo, en Python no ocurre así. El patrón de indentación nos indica con precisión a qué `if` corresponde cada `else`.
Comprueba tu comprensión.
¿El siguiente código provocará un error?
x = -10
if x < 0:
    print("The negative number ",  x, " is not valid here.")
else:
    if x > 0:
        print(x, " is a positive number")
    else:
        print(x," is 0")
✔️ Esta es una instrucción if-else anidada válida. La instrucción if-else interna está completamente contenida dentro del bloque else externo.
ResponderBorrar