El bloque “while” (“mientras”, en inglés) es un bloque que implementa un bucle; es decir, repite la ejecución de las instrucciones que están dentro de sus llaves de apertura y cierre. ¿Cuántas veces? No hay un número fijo: se repetirán mientras la condición especificada entre sus paréntesis sea cierta (“true”,1). Su sintaxis es muy sencilla:
La condición escrita entre paréntesis sigue las mismas reglas y puede
utilizar los mismos operadores que hemos visto con el bloque “if”. Nada más llegar a la línea donde aparece escrita esta condición, esta se comprobará; si resulta cierta, se ejecutarán las sentencias interiores, y si no, la ejecución del programa continuará a partir de la línea siguiente a la llave de cierre. En el primer caso (cuando la condición es cierta), una vez ejecutadas todas las instrucciones del interior del bloque “while”, se volverá a comprobar de nuevo la condición, y si esta continúa siendo cierta, se realizará otra iteración (es decir: se volverán a ejecutar las sentencias interiores). Cuando se llegue de nuevo al final de esas instrucciones anteriores, se volverá a evaluar la condición, y si sigue siendo cierta, se volverán a ejecutar. Este proceso continuará hasta que, en un momento dado, al comprobarse la condición del “while”, esta resulte falsa.
Si se llega por primera vez a una sentencia “while” y la condición resulta
falsa directamente, no se ejecutarán las sentencias interiores ninguna vez. Este detalle es importante tenerlo en cuenta.
Las sentencias interiores a un bucle “while” pueden ser tantas como se
quieran y de cualquier tipo, incluyendo, por supuesto, nuevos bucles “while”. ANGIE LICETH PINILLOS RODGER INGENIERA ELECTRÓNICA 1 ESPECIALISTA EN PEDAGOGÍA PARA EL DESARROLLO DEL APRENDIZAJE AUTÓNOMO while, do/while
Ejemplo 1: En el siguiente ejemplo de muestra, se puede observar cómo
en el “Serial monitor” los primeros 50 mensajes que aparecerán indicarán que la variable es menor de 50 porque se está ejecutando el interior del “while”. Pero en el momento que la variable sea mayor (porque en cada iteración del bucle se le va aumentando en una unidad su valor), la condición del “while” dejará de ser cierta y saltará de allí, mostrando entonces el mensaje (ya de forma infinita) de que la variable es mayor que 50:
Ejemplo 2: Una aplicación práctica del bucle “while” es el poder recibir
a través del canal serie (u otro sistema de comunicación diferente) varios caracteres seguidos uno tras otro, e irlos concatenando (por ejemplo, mediante la función unacadena.concat()), para lograr así generar y reconocer palabras y frases enteras. Esto nos puede venir muy bien para comunicarnos con nuestra placa Arduino mediante comandos completos en vez de tan solo con simples caracteres, de tal forma que podamos construir un lenguaje de control propio (incluso con parámetros).
ANGIE LICETH PINILLOS RODGER
INGENIERA ELECTRÓNICA 2 ESPECIALISTA EN PEDAGOGÍA PARA EL DESARROLLO DEL APRENDIZAJE AUTÓNOMO while, do/while
Otra aplicación práctica del bucle “while” es la eliminación de los datos
en el buffer de entrada del chip TTL-UART que no queramos, de manera que se quede este limpio de “basura”. Esto lo podríamos hacer simplemente así:
ANGIE LICETH PINILLOS RODGER
INGENIERA ELECTRÓNICA 3 ESPECIALISTA EN PEDAGOGÍA PARA EL DESARROLLO DEL APRENDIZAJE AUTÓNOMO while, do/while
El Bloque do El bloque “do” tiene la siguiente sintaxis:
El bucle “do” funciona exactamente igual que el bucle “while”, con la
excepción de que la condición es evaluada después de ejecutar las instrucciones escritas dentro de las llaves. Esto hace que las instrucciones siempre sean ejecutadas como mínimo una vez aun cuando la condición sea falsa, porque antes de llegar a comprobar esta, las instrucciones ya han sido leídas (a diferencia del bucle “while”, donde si la condición ya de entrada era falsa las instrucciones no se ejecutaban nunca).
ANGIE LICETH PINILLOS RODGER
INGENIERA ELECTRÓNICA 4 ESPECIALISTA EN PEDAGOGÍA PARA EL DESARROLLO DEL APRENDIZAJE AUTÓNOMO