Tres funciones de pertenencia (la fea, la guapa y la estúpida)

Hace unas semanas tuve por Internet (ay) una discusión con un programador experto (ay ay) sobre la mejor función de pertenencia jamás escrita. Bueno, en realidad el tema principal de la discusión no era ese, pero una tercera persona dio a escoger al experto entre dos funciones de pertenencia cuál creía él que era la mejor, supongo que para demostrar que era un troll de alto nivel. Resultó que a dicho programador le daba un miedo atroz romper la ejecución de un bucle sencillo mediante un return, y que las banderas eran siempre la mejor solución al tipo de problema planteado.

Se quedó con el siguiente código como «el mejor, el más correcto», aunque lo mejoró añadiendo un int longitud = lista.length que no reproduzco aquí ya simplemente por no manchar más el código.

La alternativa que se le ofrecía era un poco más compacta, evitaba el uso de variables locales y el recorrido innecesario de la lista.

El problema, repito, era que rompía el bucle por el centro, cosa que sólo hacen los programadores novatos cuando les enseñan qué es un break. Así que busqué una solución intermedia que agradase a todos. Un bucle del que se sale por condición, no recorre la lista más de lo necesario y es compacto.

Lo que no me agrada es tener que declarar la variable i fuera del bucle para poder usarla fuera de dicho scope, que quedase en tan solo dos líneas habría sido estupendo. Pero bueno. Ahí queda.

Deja un comentario