Comando "while"

Comando "while"

de Federico Marcelo Amorin Da Rosa -
Número de respuestas: 3

Buenas, quisiera saber si se puede detener el comando "while" en un número determinado de iteraciones, en caso de que la condición provista se siga cumpliendo, en vez de que siga iterando indefinidamente. Gracias

En respuesta a Federico Marcelo Amorin Da Rosa

Re: Comando "while"

de Raul Marichal -
Buenas Federico!

Como habrás visto en el teórico, la sintaxis de la estructura de control con iteración while, es la siguiente:

while condicion
  instrucciones
endwhile

Donde la condicion puede ser cualquier expresión booleana, en particular, puede ser el AND (&) de dos expresiones.

Por ejemplo, un caso muy sencillo e incluso trivial:
x = 1;
y = 10;
while x~=y && x < 5
 x = x + 1;
endwhile

Notar que, si bien, x~=y si se va a cumplir hasta que x llegue a 10, el bucle va a terminar antes debido a la segunda componente de AND en la condición, es decir, x llega a 5 y no se cumple que x < 5. Esta idea de utilizar un AND como condición doble del while, logra el efecto buscado de detener el bucle en determinada cantidad de iteraciones si la condición se siguiera cumpliendo para los casos evaluados.

Recordatorio, entiendo que este no es el caso pero vale la pena aclararlo, recomendamos fuertemente que si de antemano se conoce la cantidad exacta de iteraciones necesarias para resolver un problema, utilicen for.

Espero que haya sido útil la explicación.

Saludos!
En respuesta a Federico Marcelo Amorin Da Rosa

Re: Comando "while"

de Eduardo Fernandez -

Hola,

A veces ocurre que una iteración puede no parar nunca con las condiciones habituales, y por tanto se agrega un tope de iteraciones, digamos un número muy grande. En ese caso hay que agregar una condición más para que se detengan las iteraciones cuando nada más las va a detener.

i=0;
while <condición provista> && i<N
   <código>
   i=i+1;

end

Aquí va a controlar la "condición provista" y además va a iterar N veces como máximo. 

Si lo único que se quiere hacer es iterar N veces (no hay otra condición), donde N se lo conoce antes de comenzar a iterar, entonces en este curso se les pide que usen "for" y no "while". Es de las pocas cosas que controlamos explicitamente en cuanto a las técnicas correctas de programación. De las dos forma funciona, pero en este curso queremos que aprendan a distinguir cuándo usar for y cuándo usar while.

Espero que haya quedado claro,

Eduardo