
El "Si no" anidado (programación)

Actualiza para más contenido
¿Verdadero o falso? Cuando hay que comprobar más de una condición, se pueden usar las premisas anidadas.
Lina le ha enseñado a su robot a darles bombones a María y a Leon. El robot coge un bombón. Es de chocolate con leche y la condición "chocolate con leche" es verdadera. El robot le da el bombón a María. Pero María no lo quiere a pesar de ser de chocolate con leche.
Tengo alergia a los frutos secos. Si el bombón lleva frutos secos, no puedo tomarlo. Lina tiene que darle instrucciones nuevas al robot: que si es de chocolate con leche y si lleva frutos secos, el robot no debe darle el bombón a María. ¿Qué hacemos con ese bombón? A Leon sólo le gusta el chocolate negro. Pues devuélvelo a la caja.
Cuando el robot coge un bombón, mira si es de chocolate con leche. Pero con eso ya no basta porque María es alérgica a los frutos secos. Si es de chocolate con leche, el robot tiene que mirar si lleva frutos secos dentro. Habrá una instrucción "si" dentro de otra instrucción "si": que cuando se cumpla la condición "lleva frutos secos", el robot volverá a dejar el bombón en la caja. Si no, el robot le dará el bombón a María.
Pero si la condición "chocolate con leche" no se cumple, es que tiene que ser de chocolate negro, que es el que le gusta a Leon. Así pues la instrucción para el robot debería ser: "Dar bombón a Leon". Pongamos a prueba el nuevo pseudocódigo. El robot coge un bombón y es de chocolate con leche. La primera condición es "chocolate con leche" y se cumple.
La siguiente condición a comprobar es "frutos secos", ¿Esta condición es verdadera o falsa? El robot lo examina minuciosamente y ve que este bombón lleva frutos secos. La condición es verdadera. Así que el robot sigue la instrucción de volver a dejar el bombón en la caja. El resto de las instrucciones se realizan sólo si la condición "chocolate con leche" es falsa, o si "chocolate con leche" es verdadera y "frutos secos" es falsa.
El programa termina cuando el robot vuelve a dejar el bombón en la caja. Reiniciemos el programa para probar con otro bombón. Una vez más es de "chocolate con leche". Así que la primera condición se cumple. Lo siguiente que comprueba el robot es si "lleva frutos secos".
No lleva frutos secos y no se cumple la segunda condición. Eso nos lleva a la instrucción: Si no, "Dar el bombón a María". Y el programa finaliza. Lena ha escrito una instrucción "si" dentro de otra instrucción "si". A eso se le llama "premisa "si" anidada" Con las premisas "si" anidadas el robot puede decidir si es de chocolate con leche o negro y si el de chocolate con leche lleva frutos secos.
Ahora María ya puede disfrutar de su bombón sin tener que preocuparse por si lleva frutos secos.