HOME

PRODUCTOS

PROYECTOS

TUTORIALES

VIDEOS

FREEWARE

PROGRAMAS

FUNCIONES C

EMPRESA

ENGLISH

                   

Declaraciones while, do while, for.

 

 

while.jpg (130012 bytes)

 

Descripción:

Las declaraciones while, do while y for son las que permiten al programador usar estructuras repetitivas (mallas ó loops) dentro de su programa. La declaración for aunque un tanto críptica, dá la posibilidad de definir en forma muy compacta las condiciones del loop.

Para explicar la declaración while, usemos el siguiente ejemplo. Deseamos realizar una cuenta del 1 al 20 en los leds del puerto B:

PORTB=0;
a=0;
while(a<20)
{PORTB=PORTB+1;
delay_ms(500);
a=a+1;}

Observamos que primeramente viene una inicialización del puerto B y de la variable a. En seguida viene la declaración while(a<20), lo cual significa: "mientras la expresión adentro del paréntesis sea verdadera, ejecuta las líneas que se encuentran adentro de los corchetes { }".

 

En el ejemplo señalado arriba, la malla formada por la declaración while, se repetirá 20 veces, ya que en la última línea se incrementa la variable 'a' en una unidad. Si probamos el archivo ejecutable de este programa en alguno de los sistemas EDUPIC o EVOLUPIC, observaremos una cuenta del 1 al 20 en formato binario, en los leds del puerto B, con un retraso de medio segundo entre una cuenta y la siguiente.

La declaración do while: esta declaración es similar a la anterior, con la variante de que el conjunto de expresiones que habrá de ejecutarse de acuerdo a la condición, se realiza antes de la declaración while. Ejemplo:

PORTB=0;
a=0;
do
{PORTB=PORTB+1;
delay_ms(500);
a=a+1;}
while(a<20);

Este programa es igual al anterior, pero las expresiones adentro de los corchetes se ejecutan, al menos una vez, antes de evaluar la expresión while(a<20).

Otra posibilidad es utilizar la declaración while(1). Considerando que la expresión "1" siempre es verdadera, se está creando un loop permanente. De tal manera que en el siguiente programa, se genera una malla con un contador binario en el Puerto B.

PORTB=0;
a=0;
while(1)
{PORTB=PORTB+1;
delay_ms(500);
a=a+1;}

La declaración for permite realizar una simplificación de la estructura while. El for contiene 3 expresiones dentro de sus paréntesis: la primera inicializa una variable, en este caso a=0; la segunda contiene la condición de la malla, en este ejemplo a<20; Y la tercera contiene una expresión que habrá de ejecutarse siempre al final de la malla, en este ejemplo a=a+1; En el siguiente ejemplo, del lado izquierdo se muestra un programa realizado con la declaración for, cuyo resultado es idéntico al mostrado a la derecha, utilizando la declaración while. En ambos casos se genera un contador binario de 0 a 20 en los leds del puerto B.

 

USANDO FOR:      USANDO WHILE:
for(a=0;a<20;a=a+1;)
{PORTB=PORTB+1;
delay_ms(500);}
a=0;
while(a<20)
{PORTB=PORTB+1;
delay_ms(500);
a=a+1;}
 

La siguiente declaración forma un loop permanente sobre sí misma, y se usa frecuentemente como línea final en los programas:

for(;;);

Por último y como dato adicional, los programadores de ANSI C usan habitualmente (con cualquier nombre de variable) las expresiones simplificadas:

a++   es equivalente a a=a+1

wi--   es equivalente a wi=wi-1