A instrução while é a estrutura condicional que permite criar um loop sobre uma condição. Ela é encontrada em todas as linguagens de programação e é usada para executar um bloco de código em loop desde que uma condição seja cumprida.
Sintaxe da instrução while
A instrução toma como entrada uma condição na forma de variável booleana e executa um bloco de instruções em loop, desde que a condição seja verdadeira. Enquanto a condição for verdadeira, o código que se segue ao bloco while será executado. Tenha o cuidado de atualizar o estado da sua condição.
while(condition){ <liste d'instructions tant que condition=true>; <mise à jour de la condition>; }
Exemplo de um código que conta até 10:
int val=0; void setup() { Serial.begin(9600); } void loop() { while(val<=10){ Serial.println(val); val++; } }
Um booleano é um tipo de variável igual a true( 1-true) ou false(0-false). Na linguagem C(Arduino), as variáveis booleanas são inicializadas com a palavra-chave bool ou boolean. Um booleano pode ser obtido de diferentes maneiras.
- O resultado de um teste lógico <,>,==,!=,!
condition = variable == 10; // variable égale à 10? condition = temperature>30; // temperature est supérieure à 30 condition = vitesse <= 100 // vitesse inférieure ou égale à 100 condition = !true // condition égale non vraie (faux)
- O resultado de várias condições
condition=(temperature>30) && (vitesse<20);
- O resultado de uma função
bool test(int val){ //retourne vraie si la valeur est supérieur à 200 return val>200; }
Vale notar que a função de entrada da instrução é executada a cada loop.
int val=0; void setup() { Serial.begin(9600); } void loop() { while(condition()){ Serial.println(val); } delay(10);//sanity delay } bool condition(){ val++; return val<=10; }
Outras sintaxes
Existe outra versão da instrução while: a do..while, que na realidade consiste em outra instrução distinta. A principal diferença é que ela é executada pelo menos uma vez.
O código a seguir conta até 10. O bloco do…while deve ser colocado na função setup, caso contrário a variável val irá se incrementar infinitamente. Como o bloco do..while é executado pelo menos uma vez, a variável val irá aumentar uma vez a cada execução do loop().
int val = 0; void setup() { Serial.begin(9600); do{ Serial.println(val); val++; } while(val<=10); } void loop() { delay(10);//sanity delay }
Concluindo, é importante lembrar que:
- A instrução while toma como entrada uma condição representada por uma variável booleana.
- A instrução de entrada do loop while é executada a cada loop.
- A condição é escrita entre parênteses
- O bloco de instruções é escrito entre chaves {}.
- A instrução do..while é executada pelo menos uma vez, diferente da instrução while.
Fontes
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie