![El bucle "mientras" (programación)](https://static.studi.se/lessons/thumbs_small/MAH406.png)
El bucle "mientras" (programación)
![Miniatura del vídeo](/_next/image?url=https%3A%2F%2Fstream.binogi.net%2Fstream%2FMAH406%2FMAH406_XX_en.jpg&w=3840&q=75)
¿Verdadero o falso? Si se quiere repetir un código, puede usarse un bucle.
Lina ha desarrollado un programa para que su robot pueda darles a Leon y a María sus bombones favoritos. Y lo hace bien. Leon pone en marcha el robot. Éste coge un bombón, lo mira, ve que es de chocolate con leche y comprueba si lleva frutos secos. No. Sin frutos secos.
Así que: el bombón es para María. A Leon no le ha dado ningún bombón. Reinicia el programa. El robot coge otro bombón. Esta vez es de chocolate negro.
El robot le da el bombón a Leon. "Es una lata lo de reiniciar el programa cada vez." "Pues sí. Si hay que reiniciar el robot también podemos coger los bombones por nuestra cuenta." María y Leon no quieren tener que reiniciar el programa una y otra vez. ¿Cómo evitarlo? María se propone mejorar el programa de Lena. Primero tiene que ver cómo está formulado el pseudocódigo. Las instrucciones son: Coger un bombón y dárselo a María o a Leon o dejar el bombón.
Las instrucciones solo se ejecutan una vez, pero María quiere que el programa se reinicie y siga en bucle. Su requisito es que mientras haya bombones en la caja, el programa se repita: se itere. El requisito de María es la condición en bucle. Cuando la condición es verdadera, las instrucciones se iteran. Cuando la condición es falsa, el programa continúa dentro del código.
Esto es un bucle "mientras". María escribe que el programa tiene que hacerle una pregunta al usuario: ¿Cuántos bombones hay en la caja? La respuesta se anota bajo la variable llamada "bombones". El requisito "mientras haya bombones en la caja" es la misma variable que la de "bombones mayor que 0". Si se llevan a cabo las instrucciones en bucle, se sacará un bombón.
A continuación se necesita un nuevo valor para la variable "bombones". María introduce una línea al final del bucle. Bombones igual a bombones menos 1. Resulta un poco complicado ver qué líneas pertenecen al bucle y tienen que repetirse. ¿Cómo dejarlo más claro dentro del código? María sangra las líneas de esta manera.
Y ahora va a probar el programa. Lo inicia.... ... e introduce que hay 10 bombones. Luego el programa comprueba la condición dentro del bucle "mientras". La variable "bombones" es igual a 10.
Es mayor que 0. La condición es verdadera. Si la condición es verdadera, se ejecutan las instrucciones del bucle. El robot coge un bombón. Es de chocolate con leche.
La primera condición del bucle se cumple Siguiente condición: ¿Lleva frutos secos? Sin frutos secos. Entonces no se seguirá la orden de dejar el bombón. Lo que hace el programa es ir a : "si no: dar bombón a María". Ahora el número de bombones ha bajado.
Y la variable "bombones" pasa al valor 10 menos 1, que son 9. El programa ha ejecutado todas las instrucciones del bucle y vuelve al inicio del bucle. ¿Sigue siendo verdadera la condición? Sí, "bombones" es 9. Mayor que 0. Se vuelven a ejecutar las instrucciones del bucle.
El robot coge otro bombón. Y "bombones" disminuye en 1 y pasa a 8. El programa vuelve a comprobar la condición. 8 es mayor que 0 y la condición es verdadera. El robot continúa.
Itera el bucle siempre y cuando la condición sea verdadera. Pero cuando la caja esté vacía, el número de bombones será 0. ¿Y entonces qué? 0 no es mayor que 0. La condición es falsa y el robot no ejecuta las instrucciones del bucle. El programa continúa, pero ya no hay líneas después del bucle.
El programa finaliza. Con la ayuda de un nuevo bucle Leon y María pueden conseguir que el robot les dea un montón de bombones sin tener que reinicar el programa continuamente. ¡Qué bien! ¿A que sí, Leon y María?