En muy (muy muy muy) pocas palabras, un
while hace que se repitan una serie de instrucciones determinadas
mientras se de una condición específica.
Ejemplo:
I = 1
mientras I es menor a 9 hacer
Sumar 1 a I
Entonces, ¿ese bucle se repetiría cuántas veces?
Veamos.
Empezamos teniendo que I es igual a 1 y entramos al bucle.
Pregunta si es menor a 9; en este caso da negativo (ya tenemos
una vuelta)
Le suma 1 a nuestra variable I y vuelve a preguntar si es menor a 9.
Como 1+1=2 es menor a 9, la condición te da VERDADERO y vuelve a entrar al bucle.
Todo esto se ejecuta hasta que I tenga valor 9, dado que cuando I tiene valor 8 se le suma 1; eso te da 9 y de nuevo pregunta si I es menor a 9. Esto último sería falso y termina el bucle.
Por el otro lado, un bucle
for repite una serie de sentencias determinadas una cantidad de veces específica.
Ejemplo:
desde I=1 hasta I=3 hacer
Mostrar(Repeticion numero I)
Ahora entendámoslo. Ese ejemplo empieza diciendo que I es igual a 1 y para terminar necesita que I sea igual a 3.
Cuando se ejecuta por primera vez, muestra en pantalla "Repeticion numero 1" y se suma
automáticamente 1 a nuestra variable I.
Entonces, tenemos que I vale 2 y el compilador se fija si I es mayor a 3 (en realidad ejecuta todas las sentencias mientras I sea menor o igual a 3).
Como tenemos que I es 2 y 2 es no es mayor a 3, vuelve a ejecutarse el "Mostrar".
En algún momento, I es igual a 3 y el compilador devuelve un "verdadero" para ejecutarse de nuevo; al hacerlo, I se convierte en 4 y termina el bucle.
Un bucle
for es lo mismo que un bucle
while con la condición
variable_inicio<=variable_final y una sentencia interna que diga
variable_inicio_:=variable_inicio+1
Ejemplo:
Código Delphi
[-]
I:=1;
Fin:=4;
while I<=Fin do begin
ShowMessage('Repetición número ',IntToStr(I));
I:=I+1;
end;
Ese bucle while hace exactamente que el siguiente bucle for:
Código Delphi
[-]
for I:=1 to 4 do
ShowMessage('Repetición número ',IntToStr(I);
Bueno, espero que toda esta exlicación se entienda.
Saludos!!!!
PD: si sentís que te lo expliqué como si fueses tonto, disculpame; pero cuando me lo "explicaron" a mí no lo hicieron muy bien.