Sì, è possibile [ri] scrivere programmi senza istruzioni di interruzione (o ritorna dal centro di loop, che fanno la stessa cosa). Ma potrebbe essere necessario introdurre variabili aggiuntive e / o duplicazione del codice che rendono il programma più difficile da capire. Pascal (il linguaggio di programmazione) è stato pessimo soprattutto per i programmatori principianti per questo motivo. Il tuo capo vuole sostanzialmente che tu pianti nelle strutture di controllo di Pascal. Se Linus Torvalds fosse nei tuoi panni, probabilmente mostrerebbe al tuo capo il dito medio!
Esiste un risultato di computer science chiamato gerarchia delle strutture di controllo di Kosaraju, che risale al 1973 e che è menzionata nel (più) famoso documento di Knuth su gotos del 1974. (Questo documento di Knuth era già raccomandato sopra da David Thornley, a proposito.) Ciò che S. Rao Kosaraju ha dimostrato nel 1973 è che non è possibile riscrivere tutti i programmi che hanno interruzioni di profondità multi-livello n in programmi con profondità di interruzione inferiore a n senza introdurre variabili extra. Ma diciamo che è solo un risultato puramente teorico. (Aggiungi solo alcune variabili extra?) Sicuramente puoi farlo per compiacere il tuo capo ...)
Ciò che è molto più importante dal punto di vista dell'ingegneria del software è un più recente documento del 1995 di Eric S. Roberts intitolato Uscite dal ciclo e programmazione strutturata: riapertura del dibattito ( link ). Roberts riassume diversi studi empirici condotti da altri prima di lui. Ad esempio, quando è stato chiesto ad un gruppo di studenti di tipo CS101 di scrivere codice per una funzione che implementa una ricerca sequenziale in un array, l'autore dello studio ha affermato quanto segue su quegli studenti che hanno utilizzato un break / return / goto per uscire da il ciclo di ricerca sequenziale quando l'elemento è stato trovato:
I have yet to find a single person who attempted a program using [this style] who produced an incorrect solution.
Roberts dice anche che:
Students who attempted to solve the problem without using an explicit return from the for loop fared much less well: only seven of the 42 students attempting this strategy managed to generate correct solutions. That figure represents a success rate of less than 20%.
Sì, potresti avere più esperienza degli studenti CS101, ma senza usare l'istruzione break (o equivalentemente return / goto da metà di loop), alla fine scriverò codice che, pur essendo nominativamente ben strutturato, è abbastanza peloso in termini di variabili logiche extra e duplicazione del codice che qualcuno, probabilmente te stesso, inserirà dei bug di logica mentre cerca di seguire lo stile di codifica del tuo capo.
Dirò anche che il lavoro di Roberts è molto più accessibile al programmatore medio, quindi una prima lettura migliore di quella di Knuth. È anche più breve e copre un argomento più ristretto. Probabilmente potresti anche raccomandarlo al tuo capo, anche se è il management piuttosto che il tipo CS.