Está en la página 1de 2

Diferencia entre For, While, Do WhileOR, WH

Este breve artículo va para los más novatos en programación que recién comienzan a estudiar las
estructuras de control como el FOR y el WHILE pero desconocen cuál es la diferencia entre FOR,
WHILE y DO WHILE.

No importa el lenguaje que estés utilizando, siempre y cuando éste tenga las palabras reservadas FOR y
WHILE; en este caso los ejemplos estarán escritos en C aunque el uso debería ser exactamente igual en
lenguajes como Java, PHP, Shell Script y otros tantos.

Bucle FOR
El ciclo o bucle FOR se utiliza cuando tenemos claro un punto de inicio y un punto de finalización. Por
ejemplo si deseamos imprimir los números pares entre el 20 y el 36, haríamos algo como lo siguiente:

for(int k = 20; k <= 36; k++)


(k % 2 == 0)? printf("%d\n", k): continue;

En el código anterior vemos que si el residuo de la división del número K entre 2 es igual a cero,
entonces el número es par y se imprime dicho número, caso contrario decimos que el bucle FOR se
ejecute con el siguiente valor de K. Por cierto la instrucción extraña que vemos ahí se le conoce como
operador ternario (es lo mismo que un IF de una línea).

Bucle WHILE
El bucle WHILE, a diferencia del FOR, se utiliza cuando no sabemos cuando finalizará una condición
dada, un claro ejemplo puede ser cuando el usuario quiere continuar haciendo algo en repetidas
ocasiones hasta que pulse la tecla 'n'.

char val = 's';

while(val == 's')
{
printf("Deseas continuar? s/n: ");
scanf("%c", &val);
}

En este pequeño código el programa le preguntará al usuario si desea continuar, a menos que éste
presione la tecla 'n', el programa le preguntará infinitas veces.

Bucle DO WHILE
El bucle DO WHILE es casi igual al anterior, con la diferencia de que la condición dada se ejecuta al
menos una vez. Siguiendo con el ejemplo anterior, ¿qué pasaría si la variable val tuviera otro valor, por
ejemplo char val = 'z'? Simplemente el ciclo WHILE jamás se ejecutaría porque no se cumple la
condición de que val tenga un valor s; entonces con el bucle DO WHILE hacemos que el código entre
llaves se ejecute al menos una vez.
char val = 'z';

do
{
printf("Deseas continuar? s/n");
scanf("%c", &val);
}
while(val == 's');

Como vemos, el código se ejecutará solamente una vez si el usuario introduce un valor distinto a 's',
en otro caso el código se ejecutará indefinidamente hasta que el usuario pulse una tecla que no sea 's'.

Y con ello doy por terminado este breve apunte, más adelante explicaré otras sentencias menos comunes
como el DO UNTIL y FOREACH que son particulares de algunos lenguajes como C#, Java, PHP, etc.

WHILE

También podría gustarte