La gran mentira del FOR y el WHILE que te dicen en primero

A muchos estudiantes de primero le exigen saber cuando usar un for y cuando usar un while, y yo vengo a romper esa estupidez que fuerza a los estudiantes a creer que hay momentos en los que es mejor usar un bucle a usar el otro.

Empecemos explicando que estos dos bucles son iterativos, lo que significa a grandes rasgos, que siguen una estructura de cola, y que no existe un tiempo razonable de diferencia entre un bucle y otro.

Bien, se suele decir que un FOR se usa cuando sabes el número de iteraciones y un WHILE cuando no lo sabes, veamos unos ejemplos en algunos lenguajes:

PYTHON

FOR X IN ELEMENTOS:

WHILE CONDICION:

JAVA / C++

FOR(int x=0;x<NUM;x++)

while(condicion)

PASCAL

FOR i:= INI to FIN do

while condicion do

Con estos ejemplos podemos ver varias cosas, pero vamos a empezar por el más fácil de entender, PASCAL: La diferencia entre los dos en pascal es abismal, en el for requieres por narices dos enteros, uno de inicio y uno de final, y la variable, en este caso la "i" viajará de INI a FIN, iterando. Es muy distinguible al while, que en todos los casos requiere una condición, cosa que el FOR no cumple, ¿verdad?

3 claves para aprender a programar online
Este primer post que pongo trata sobre mi experiencia a lo largo de 3 años de dar clases de programación a alumnos de universidad...

La cosa es que si lo cumple, de hecho, la "i" cumple la condición INI-1<i<FIN+1 por lo que perfectamente lo podríamos poner en un while, aunque sí que es cierto que no todo lo que pueda hacerse en un while podría hacerse en un FOR.

Pasemos a JAVA/C++: Esta me parece la más evidente de todas y la que más rabia me da cuando mis alumnos no saben cuando usar uno u otro porque son literalmente idénticos en construcción, me explico:

x=0

While(condicion){BLOQUE_CODIGO;x++;}

Es literalmente equivalente a:

FOR(int x=0;condicion;x++) {BLOQUE_CODIGO}

de hecho podemos no usar la x en el bloque de código, que se seguiría ejecutando como un while común y corriente, lo que significa que no hay diferencia alguna entre los dos bucles.

En PYTHON es más difícil de demostrar, pero el conjunto ELEMENTOS podemos hacerlo hasta de la función del bloque de código a ejecutar en la iteración que queremos hacer, dejando así a los dos bucles, de nuevo, funcionando literalmente igual.

Encuentra tu profesor ideal

En conclusión, si algún profesor alguna vez es tan necio de ponerte un ejercicio o quitarte puntos en un proyecto porque uses un bucle y no el otro, demuestrale paso por paso que los dos bucles son literalmente indistinguibles.

© 2007 - 2022 Tus clases particulares Mapa web: Profesores particulares| Academias y centros