El bucle while

Ya hemos visto la estructura condicional if y el bucle de repetición for, ambas muy utilizadas en programación, pero al estar conectados al  mundo real nuestro Arduino habrá ocasiones en las que querremos que realice acciones mientras se cumpla una condición  sin importar el número de veces repita: para ello contamos con el comando while.

Su sintaxis es la siguiente:

1
2
3
4
while (condición)
{
// comandos
}

Nuestro ejemplo de aplicación seguirá con el pequeño fragmento de código que hace parpadear el LED 4 de modo que siga parpadeando de forma indefinida mientras se mantenga accionado el pulsador 12.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int pulsador = 12;
int led= 4;

void setup()
{
  pinMode(pulsador, INPUT);
  pinMode(led, OUTPUT);
}

void loop()
{
  while (digitalRead(pulsador) == HIGH)
  {
    digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);
  }
}

Según hemos visto el comando while se ejecuta mientras se cumpla una condición, hilando más fino, primero se evalúa la condición y si se cumple se ejecuta el código. Hasta aquí todo bien, pero puede que en algún caso queramos o necesitemos que sea al revés: que primero se ejecute el código y que luego se evalúe la condición, para ello existe una variación del comando while que es el do…while y cuya sintaxis es:

1
2
3
4
do
{
// comandos
}while (condición)

Aplicado al ejemplo anterior no notaremos ninguna diferencia de comportamiento en el Shield de Práticas, pero hay que recordar que en programación el orden es importante y en proyectos más complejos nos encontraremos con la necesidad de que la condición sea evaluada cuando el código se haya ejecutado al menos una vez.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int pulsador = 12;
int led= 4;

void setup()
{
  pinMode(pulsador, INPUT);
  pinMode(led, OUTPUT);
}

void loop()
{
  do
  {
    digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);
  }while (digitalRead(pulsador) == HIGH)
}

Si este tutorial te ha sido de utilidad puedes considerar hacerme un donativo, por pequeño que sea estarás contribuyendo a que siga con esta labor.


Deja un comentario

Campos requeridos marcados con *.


Una estúpida ley me obliga a molestarte con algo obvio: este sitio utiliza cookies. Aquí tienes el ladrillo en cuestión por si quieres leerlo