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