Site icon AranaCorp

Uma rápida olhada na instrução while em C

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.

 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) 
   
condition=(temperature>30) && (vitesse<20);
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:

Fontes

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

Exit mobile version