Etiquetas: ,

A instrução for permite repetir blocos de código. É o primeiro passo para um código mais eficiente e legível.

Sintaxe da instrução for

A instrução for toma como entrada um contador cujo incremento e a condição final são definidos. Ela é frequentemente utilizada com listas de variáveis (array) para realizar operações sobre os dados nelas contidos.

  for(initialisation;condition d'arrêt;incrément){
    <liste d'instructions qui se répètent>;
  }

Na inicialização, definimos um número inteiro que conterá o contador. A condição de paragem será o resultado de um teste lógico (geralmente um valor limite). O incremento será uma operação que define como o contador evolui a cada rotação.

No exemplo seguinte, o código contará até 10, exibindo cada valor no monitor serial:

  • inicialização: inicializamos um número inteiro i em 0;
  • condição: o loop para quando i atinge o valor 10;
  • incremento: o contador i evolui 1 a cada execução.
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
}

No exemplo seguinte, o algoritmo conta de 10 a 0.

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

Para definir o incremento da variável, podemos escolher qualquer função. Exemplos:

  • i=2i para contar números pares
  • i=2i+1 para contar números ímpares
  • i=pow(i,2) uma função ao quadrado
  • i++ equivale a i=i+1
  • i- equivale a i=i-1

A inicialização pode ser definida fora do loop for. Neste caso, preste atenção ao nome e à inicialização das suas variáveis. No exemplo seguinte, o código contará de 0 a 10 uma primeira vez, e de 3 a 10 nas vezes seguintes.

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
}

Outras sintaxes

É possível omitir as chaves quando o loop contém uma só instrução.

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

Por vezes, é interessante executar vários loops em paralelo: são os chamados loops aninhados. No exemplo seguinte, para cada execução do primeiro loop, o segundo contará até 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);
   }
}

Para lembrar:

  • A instrução for toma como entrada a inicialização de um contador, uma condição de paragem e uma definição de incremento.
  • Os loops for podem ser aninhados.
  • O bloco de instruções fica entre chaves {}.
  • Se a lista de instruções estiver numa única linha, podemos dispensar as chaves.

Certifique-se de dominar as arrays, os operadores lógicos e o incremento para usar a instrução for da melhor maneira. Quando tiver dominador esta instrução, poderá criar algoritmos cada vez mais eficientes .

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie