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
Como habrás visto en el teórico, la sintaxis de la estructura de control con iteración while, es la siguiente:
while condicion
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!
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