fbpixel
Etiquetas: ,

La declaración for se usa para repetir bloques de código. Es el primer paso hacia un código más eficiente y legible.

Sintaxis de la declaración for

La instrucción for toma, como entrada, un contador cuyo incremento y condición final están definidos. Se suele utilizar con listas de variables (array) para realizar operaciones con los datos que contienen?

  for(inicialización;condición de parada;incremento){
    <lista de instrucciones>;
  }

En la inicialización se define un número entero que contendrá el contador. La condición de parada será el resultado de una prueba lógica (normalmente un valor límite. Y el incremento será una operación que define cómo evoluciona el contador en cada turno.

En el siguiente ejemplo, el código contará hasta 10, mostrando cada valor en el monitor de serie:

  • inicialización: inicializamos un entero i a 0
  • condición: el bucle se detendrá cuando alcance el valor 10
  • incremento: el contador i evoluciona de 1 a 1 en cada ejecución
void setup() {
  Serial.begin(9600);
}

void loop() {
  for(int i=0;i<=10;i=i+1){
    Serial.println(i);
  }
  delay(500); //delay for monitor display
}

En el siguiente ejemplo, el algoritmo cuenta de 10 a 0.

for(int i=10;i>=0;i=i-1){
 Serial.println(i);
}

Para la definición del incremento de la variable, es posible establecer cualquier función. Ejemplo:

  • i=2*i para contar números pares
  • i=2*i+1 para contar números impares
  • i=pow(i,2) una función cuadrada
  • i++ es igual a i=i+1
  • i– es igual a i=i-1

La inicialización puede definirse fuera del bucle for. En este caso, preste atención al nombre y a la inicialización de sus variables. En el siguiente ejemplo, el código contará primero de 0 a 10 y luego de 3 a 10 las siguientes veces.

int index=0;
void setup() {
  Serial.begin(9600);
}

void loop() {
  for(index;index<=10;index=index+1){
    Serial.println(index);
  }
  index=3;
  delay(500); //delay for monitor display
}

Otras sintaxis

Es posible olvidarse de los frenos si el bucle for contiene sólo una instrucción.

for(int i=0;i<=10;i=i+1) Serial.println(i);

A veces es interesante hacer varios bucles en paralelo. Estos se llaman bucles anidados. En el siguiente ejemplo, por cada ejecución del primer bucle, el segundo contará hasta 5.

for(int i=0;i<=10;i=i+1){
   for(int j=0;j<=5;j=j+1){
       Serial.print(i);
       Serial.print(F("-"));
       Serial.print(j);
   }
}

Cosas para recordar

  • la instrucción for toma como entrada la inicialización de un contador, una condición de parada y una definición de incremento
  • el for puede ser anidado
  • el bloque de instrucción está entre llaves {}
  • Si la lista de instrucciones está en una línea entonces no hay necesidad de llaves

Asegúrate de que entiendes las matrices, los operadores lógicos y de incremento para usar la declaración de for correctamente. Una vez que hayas dominado esta instrucción, podrás crear algoritmos más eficientemente.

Fuentes