for

Descripción

La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un número determinado de veces. Cada vez que se ejecutan las instrucciones del bucle se vuelve a comprobar la condición. La declaración for tiene tres partes separadas por ';' , veamos el ejemplo de su sintaxis:

Sintaxis

for (initialization; condition; increment) { //instrucción(es); }

La inicialización de una variable local se produce una sola vez y la condición se prueba cada vez que se termina la ejecución de las instrucciones dentro del bucle. Si la condición sigue cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condición no se cumple, el bucle termina.

Ejemplo

Ejemplo 1

void setup() { Serial.begin(9600); Serial.println("====== TEST START ======"); for (int i = 1; i <= 5; i++) { Serial.print("Inside the FOR loop: i = "); Serial.println(i); } Serial.println("====== TEST END ========"); } void loop() {}

In the example above, the code in the loop will run, over and over again five times.

El resultado es esto:

COM6
Send
====== TEST START ====== Inside the FOR loop: i = 1 Inside the FOR loop: i = 2 Inside the FOR loop: i = 3 Inside the FOR loop: i = 4 Inside the FOR loop: i = 5 ====== TEST END ========
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Example explained:

  • Initialization: int i = 1 sets a variable before the loop starts.
  • Condition: i <= 5 defines the condition for the loop to run. If the condition is true (i is less than or equal to 5), the loop will start over again. if it is false (i is greater than 5), the loop will end.
  • Increment: i++ increases a value each time the code block in the loop has been executed.

The above code is equivalent to:

void setup() { Serial.begin(9600); Serial.println("====== TEST START ======"); int i = 1; while ( i <= 5) { Serial.print("Inside the FOR loop: i = "); Serial.println(i); i++; } Serial.println("====== TEST END ========"); } void loop() {}

Ejemplo 2

// Reduce el brillo de un LED usando un pin PWM int PWMpin = 10; // LED en serie con una resistencia de 470 ohm en el pin 10 void setup() { // no es necesario el setup } void loop() { delay(10); for (int i = 0; i <= 255; i++) { analogWrite(PWMpin, i); } }

※ Nota:

Loop Forever

The following while loop loops forever:

for (;;) { // statement(s); }

How to escape the for loop

There are three ways to escape the for loop:

  • The condition of the for loop becomes false.
  • The execution of the code reaches a break statement inside the loop.
  • The execution of the code reaches a goto statement inside the loop, which jumps to a label located outside of the loop.

Others

El bucle for en el lenguaje C es mucho más flexible que otros bucles encontrados en algunos otros lenguajes de programación, incluyendo BASIC. Cualquiera de los tres elementos de cabecera puede omitirse, aunque el punto y coma es obligatorio. También las declaraciones de inicialización, condición y expresión puede ser cualquier estamento válido en lenguaje C sin relación con las variables declaradas. Estos tipos de estados son extraños pero permiten crear soluciones a algunos problemas de programación específicos.

Por ejemplo, usando una multiplicación en el incremento de la línea generará una progresión logarítmica:

for (int x = 2; x < 100; x = x * 1.5) { println(x); }

Genera: 2,3,4,6,9,13,19,28,42,63,94

Otro ejemplo, encendido y apagado progresivo de un LED con un lazo for:

void loop() { int x = 1; for (int i = 0; i > -1; i = i + x) { analogWrite(PWMpin, i); if (i == 255) { x = -1; // cambia de dirección } delay(10); } }

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, DIYables.

※ OUR MESSAGES