Uma outra forma de criar um loop dentro do programa é através da instrução while (tradução: “enquanto”). Para essa instrução, um conjunto de comandos será executado enquanto uma determinada condição for verdadeira. Por exemplo, digamos que há um sensor de temperatura em uma sala e o nosso programa usa a instrução while para manter o ar condicionado ligado enquanto a temperatura estiver acima de 28 °C. A condição é “temperatura > 28 °C” e o comando que ficará sendo executado continuamente é “ar condicionado ligado”. Vejamos um exemplo no Arduino:

Vamos considerar que no pino 9 do Arduino há um LED e no pino A0 há um sensor de luz.
- na linha 2, chamamos o pino A0 de sensor.
- na linha 3, chamamos o pino 9 de led.
- na linha 4, criamos a variável leitura para guardar as leituras do sensor. Já deixamos o valor 0 guardado inicialmente nesta variável.
- na linha 7, definimos o pino A0 (sensor) como INPUT. Essa linha é opcional, pois os pinos analógicos já são INPUT por padrão.
- na linha 12, usamos analogRead para ler o sensor e guardamos o valor encontrado na variável leitura.
- na linha 13, a instrução while verificará se o valor da variável leitura é maior que 700. Se for, ele executará as linhas 15 e 16. Se não for, ele pulará para a linha 18.
- na linha 15, o LED é aceso.
- na linha 16, o valor que estava na variável leitura é substituido por uma nova leitura do sensor.
- na linha 18, o LED é apagado.
Entendendo um pouco mais

Veja que, antes de iniciar o loop while, precisamos fazer uma leitura inicial do sensor. Isto vai determinar se entramos no loop ou não.
Depois que iniciamos o while, as linhas 15 e 16 serão as únicas executados pelo Arduino até que a linha 16 tenha um valor menor que 700 na variável leitura. Essa linha é fundamental. Sem ela, o loop nunca terminaria. Ou seja, quando usamos o while, devemos lembrar de colocar dentro dele algum comando de verificação, para saber quando o programa deve sair do mesmo.
Perceba a diferença entre o loop “for” e o loop “while“: o primeiro é criado para um determinado número de repetições, definido previamente na própria instrução. Já o segundo, pode se repetir indefinidamente, aguardando uma certa condição se tornar falsa.
Uma outra variação desse mesmo loop é a instrução do … while, que faz a mesma coisa com a diferença que o teste da condição é feito no final. Veja o mesmo programa, com essa outra estrutura:

Veja que o comando do na linha 13 executará as linhas 15 e 16, antes de verificar a variável leitura, na linha 17. Se a condição na linha 17 for verdadeira (leitura > 700), então as linhas 15 e 16 serão executadas novamente.
A diferença neste novo programa é que as linhas 15 e 16 serão executadas pelo menos uma vez, já que a verificação da condição só é verificada depois. Já na instrução while, pode ser que as linhas 15 e 16 nunca sejam executadas.

Deixe um comentário