Un bucle es una repetición de un bloque de código hasta que la condición deje de cumplirse, es decir, que escrito como más formalmente sería algo así:
Mientras (se cumpla una condicion):
hacer algo
Es decir, que ese "hacer algo" se va a estar repitiendo hasta que la condición deje de cumplirse. Pero veamos un ejemplo práctico:
n = 10
n_entero = int(n)
i = 1
while i<= n_entero:
print(i)
i = i + 1
Analicemos este código: tenemos una condición que se debe cumplir para entrar a ejecutar el bloque de código. La condición dice que la variable i debe ser menor o igual que la variable n. Las variables i y n se han inicializado a 1 y 10, por tanto, como la condición 1 < 10 es verdad, entra dentro del bloque y mostrará por pantalla "1". La gracia de esto está en la siguiente instrucción porque vamos a modificar la variable que está en la condición: la i, y le vamos a sumar el valor 1. Por lo tanto, i vale ahora 2 y volvamos a preguntar por la condición: ¿2 es menor que 10? Sí, por tanto volvemos a entrar y mostramos visualmente 2. Podemos imaginarnos que esto sucederá sucesivamente hasta que la variable i llegue al valor 11, entonces cuando en la condición se pregunte: ¿11 es menor que 10? La respuesta es no, y por tanto no entrará dentro del bloque de código y hemos salido del bucle. Como diría cierto personaje de Marvel: "un gran poder conlleva una gran responsabilidad". Y es que un bucle tiene mucho potencial pero si se comete algún despiste el error puede ser catastrófico. Por ejemplo, qué pasaría si en este mismo código elimináramos la línea: "i= i + 1". Pues nada menos que provocaríamos el temido "bucle infinito". Un bucle infinito que mostraría por pantalla el 1 para siempre y por siempre. Moraleja: siempre debemos ver si la condición dejará de cumplirse en algún momento.Como precisamente es tan peligroso usar este tipo de bucles donde depende del programador que se produzca un bucle infinito, otra tipo de bucles se crearon para conseguir repetir código de forma más segura: el for. Veamos el mismo ejemplo de antes usando el bucle for:
for i in range(11):
print(i)
Esa línea deberíamos leerla tal que así: voy a recorrer un rango de números de 0 hasta 11 (no incluído), y ese recorrido me lo vas a ir guardando en la variable i. Osea que tendríamos un código exactamente equivalente al del bucle while. Solamente cambia que ya nos ha introducido la condición y el incremento del i. Como esto es solo para introducirnos en los bucles, no voy a entrar en más detalles pero en general se dice que el bucle for es un bucle de recorrido porque va a recorrer un listado de elementos, mientras que un bucle while sirve para buscar algo. Por tanto, si pensábamos que podíamos olvidarnos del while, me temo que no.
No hay comentarios:
Publicar un comentario