# data[].attributes.body
for: Podrás repetir las secuencias de los códigos que se encuentren entre llaves las veces que indiques en el IDE de Arduino. Para ello, se analizará que se cumplan las condiciones para que se vuelvan a ejecutar esta serie de estructuras de control.

# data[].attributes.body
while: Un bucle del tipo while es un bucle de ejecución continua mientras se cumpla la expresión colocada entre paréntesis en la cabecera del bucle. La variable de prueba tendrá que cambiar para salir del bucle. La situación podrá cambiar a expensas de una expresión dentro el código del bucle o también por el cambio de un valor en una entrada de un sensor.

# data[].attributes.body
do..while: El bucle do while funciona de la misma manera que el bucle while, con la salvedad de que la condición se prueba al final del bucle, por lo que el bucle siempre se ejecutará al menos una vez.

# data[].attributes.body
goto: transfiere el flujo de programa a un punto del programa que está etiquetado.

# data[].attributes.body
break: se usa en las instrucciones do, for, while para salir del bucle de una forma diferente a la indicada en el bucle.

# data[].attributes.body
continue: se usa en las instrucciones do, for, while para saltar el resto de las instrucciones que están entre llaves y se vaya a la siguiente ejecución del bucle comprobando la expresión condicional.

# data[].attributes.body
Las estructuras de control en el entorno de programación de Arduino son herramientas que se utilizan para elegir una secuencia o un camino alternativo dentro de la estructura del software. Esto quiere decir que, son instrucciones que permiten romper la secuencia metódica de los códigos, ya que existe una expresión lógica con la cual se debe decidir si se elige una ruta u otra para que ambas puedan llegar más adelante al mismo final del proceso.

# data[].attributes.body
for (initialization; condition; increment) { // statement(s); }

# data[].attributes.body
while (condition) { // la condición debe ser TRUE o FALSE // statement(s) }

# data[].attributes.body
do { // statement block } while (condition);

# data[].attributes.body
int x = 0; do { delay(50); // para esperar que se estabilice el sensor x = readSensors(); // lectura de los sensores } while (x < 100);

# data[].attributes.body
for (byte r = 0; r < 255; r++) { for (byte g = 255; g > 0; g--) { for (byte b = 0; b < 255; b++) { if (analogRead(0) > 250) { goto bailout; } // más declaraciones de códigos del programa } } } bailout: // más declaraciones

# data[].attributes.body
int threshold = 40; for (int x = 0; x < 255; x++) { analogWrite(PWMpin, x); sens = analogRead(sensorPin); if (sens > threshold) { // rescatar en la detección del sensor x = 0; break; } delay(50); }

# data[].attributes.body
for (int x = 0; x <= 255; x ++) { if (x > 40 && x < 120) { // crear salto en los valores continue; } analogWrite(PWMpin, x); delay(50); }