12-10-2013, 06:43 PM
(Este mensaje fue modificado por última vez en: 12-10-2013, 06:46 PM por Chachibukai.)
(12-10-2013, 05:10 PM)LoKo escribió:(12-10-2013, 02:51 PM)Nosfer escribió: Un return en un bucle dentro de una función es un ejemplo de lugar inapropiado.
¿Me puedes/podéis dar una explicación técnica de porque es inapropiado?
He visto algunos programas que lo tienen y si no recuerdo mal, en compiladores cuando nos explicaban el porque de no usar goto nos decían que el return era otra historia porque si que estaba controlado donde saltaban, cosa que el goto, pues como que no.
Supongo que será porque no poner el return() dentro del bucle te obliga a poner una condición de continuación para el bucle correcta, lo que por lo general simplificaría la comprensión. Porque si no, como con el goto, igual empezaría a llenarse de apaños y burradas estilo "hago un while(1) y cuando quiera salir del bucle ya le meteré un break() o un return(). Pero para eso, tengo que meter un if() dentro del bucle.".
Y esa misma condición del if() podría ser prácticamente la misma que la del bucle pero ligeramente modificada. Y está claro que, de haberla metido directamente como condición del bucle, en vez de en un if dentro del propio bucle, habría sido más legible.
Es lo que comentaba antes de la importancia de aprender a derivar y tal antes de comenzar a programar a lo burro. En su día me acabé morado con los invariantes en bucles.