lunes, 21 de agosto de 2017

Programación - While

La sentencia While ejecuta una serie de instrucciones contínuamente, esto es, las repite una y otra vez, mientras se cumpla una cierta condición. While en inglés significa "mientras".

La forma general de la instrucción While es la siguiente:

             While (condición)
             {
                         instrucción 1
                         instrucción 2
                         instrucción 3
                         etc.
             }

A continuación se muestra como usar la instrucción de repetición While con los robots MakeBlock mBot y Lego MindStorms EV3.

MakeBlock mBot

El bucle de repeticiones "While" se usa con las instrucciones "Repetir mientras ... hacer" y "Repetir siempre". 


La instrucción "Repetir siempre" no lleva condición, así es que todas las instrucciones que tenga dentro se ejecutarán una y otra vez de forma indefinida.

La instrucción "Repetir mientras ... hacer" lleva una condición, que es la que controlará si se deben continuar repitiendo o no las instrucciones que tenga dentro. Este se puede modificar para que las instrucciones se repitan mientras se cumpla la condición (al dejar de cumplirse la condición se dejarán de repetir las instrucciones); o bien, que se repitan hasta que se cumpla la condición (las instrucciones se repetirán continuamente, y dejarán de repetirse cuando la condición por fin se haya cumplido).

También se puede usar la instrucción "Repetir ... veces ... hacer", con la cual todas las instrucciones que tenga adentro se repetirán una cierta cantidad de veces.



Además, se dispone de la instrucción "Romper el bucle". Esta se utiliza para forzar la terminación del bucle, esto es, terminarlo antes de tiempo.



Lego MindStorms EV3

El bucle de repeticiones "While" se usa con el comando "Bucle".




Tiene varios modos de operación. Uno de ellos es repetir todo lo que tenga dentro de forma indefinida, o sea, por siempre. Otro es repetirlo un cierto número de veces. Otro es repetirlo durante un cierto tiempo. Y otro más es repetirlo en base al resultado de una operación lógica.

También, se puede usar la lectura de cualquier sensor como condición para que se siga repitiendo.

Además, se dispone del comando "Interrupción del bucle". Este se utiliza para forzar la terminación del bucle, esto es, terminarlo antes de tiempo.




Ejemplos


MakeBlock mBot. Aquí el robot avanzará hacia adelante a velocidad de 90 durante medio segundo y después se detendrá. Esto lo repetirá hasta encontrarse a 10cm de algún obstáculo.




Lego MindStorms EV3. Aquí, el robot avanzará por lapsos de una vuelta de la llanta. Continuará haciendo eso hasta que se encuentre un obstáculo a 20cm.





Enlaces