Sí, puede [re] escribir programas sin sentencias de ruptura (o retornos desde la mitad de los bucles, que hacen lo mismo). Pero es posible que tenga que introducir variables adicionales y / o duplicación de código, las cuales generalmente hacen que el programa sea más difícil de entender. Pascal (el lenguaje de programación) era muy malo especialmente para los programadores principiantes por esa razón. Tu jefe básicamente quiere que programes en las estructuras de control de Pascal. Si Linus Torvalds estuviera en tus zapatos, ¡probablemente le mostraría el dedo medio a tu jefe!
Hay un resultado informático llamado la jerarquía de las estructuras de control de Kosaraju, que se remonta a 1973 y que se menciona en el famoso artículo de Knuth sobre gotos de 1974. (Este documento de Knuth ya fue recomendado anteriormente por David Thornley, por cierto.) Lo que S. Rao Kosaraju demostró en 1973 es que no es posible reescribir todos los programas que tienen cortes de profundidad de varios niveles n en programas con una profundidad de corte menor que n sin introducir variables extra. Pero digamos que es solo un resultado puramente teórico. (¡¿Solo agrega algunas variables extra ?! Seguramente puedes hacer eso para complacer a tu jefe ...)
Lo que es mucho más importante desde la perspectiva de la ingeniería de software es un artículo más reciente de 1995 de Eric S. Roberts titulado Salidas de bucle y programación estructurada: reapertura del debate ( enlace ). Roberts resume varios estudios empíricos realizados por otros antes que él. Por ejemplo, cuando se pidió a un grupo de estudiantes del tipo CS101 que escribieran código para una función que implementa una búsqueda secuencial en una matriz, el autor del estudio dijo lo siguiente sobre aquellos estudiantes que usaron un descanso / retorno / goto para salir del el bucle de búsqueda secuencial cuando se encontró el elemento:
Todavía tengo que encontrar a una sola persona que intentó un programa usando [este estilo] que produjo una solución incorrecta.
Roberts también dice que:
A los estudiantes que intentaron resolver el problema sin utilizar un retorno explícito del bucle for no les fue tan bien: solo siete de los 42 estudiantes que intentaron esta estrategia lograron generar las soluciones correctas. Esa cifra representa una tasa de éxito inferior al 20%.
Sí, puede que tenga más experiencia que los estudiantes de CS101, pero sin usar la instrucción break (o el equivalente de retorno / goto desde el medio de los bucles), eventualmente escribirá un código que, aunque nominalmente está bien estructurado, es lo suficientemente vicioso de las variables lógicas adicionales y la duplicación de código, alguien, probablemente tú mismo, colocará errores lógicos al intentar seguir el estilo de codificación de tu jefe.
También voy a decir aquí que el documento de Roberts es mucho más accesible para el programador promedio, por lo que es una mejor primera lectura que la de Knuth. También es más corto y cubre un tema más estrecho. Probablemente incluso puedas recomendarlo a tu jefe, incluso si él es el tipo de administración en lugar del tipo CS.