Oui, vous pouvez [ré] écrire des programmes sans instructions break (ou revenir au milieu de boucles qui font la même chose). Mais vous devrez peut-être introduire des variables supplémentaires et / ou une duplication de code, ce qui rend généralement le programme plus difficile à comprendre. Pascal (le langage de programmation) était très mauvais surtout pour les programmeurs débutants pour cette raison. Votre patron veut essentiellement que vous programmiez dans les structures de contrôle de Pascal. Si Linus Torvalds était à votre place, il montrerait probablement le majeur à votre patron!
Il existe un résultat informatique appelé hiérarchie des structures de contrôle de Kosaraju, qui remonte à 1973 et qui est mentionné dans le célèbre article de Knuth sur le gotos de 1974. (Cet article de Knuth avait déjà été recommandé ci-dessus par David Thornley, à propos .) Ce que S. Rao Kosaraju a prouvé en 1973, c’est qu’il n’est pas possible de réécrire tous les programmes qui ont des sauts de profondeur n à plusieurs niveaux en programmes dont la profondeur de coupure est inférieure à n sans introduire de variables supplémentaires. Mais disons que ce n'est qu'un résultat purement théorique. (Ajoutez juste quelques variables supplémentaires?! Vous pouvez sûrement le faire pour faire plaisir à votre patron ...)
Ce qui est bien plus important du point de vue du génie logiciel, c’est un article plus récent, publié en 1995 par Eric S. Roberts, intitulé Sorties de boucle et programmation structurée: rouvrir le débat ( http://cs.stanford.edu/people/eroberts/papers/SIGCSE- 1995 / LoopExits.pdf ). Roberts résume plusieurs études empiriques menées par d'autres avant lui. Par exemple, lorsqu'un groupe d'étudiants de type CS101 était invité à écrire du code pour une fonction implémentant une recherche séquentielle dans un tableau, l'auteur de l'étude disait ce qui suit à propos des étudiants qui utilisaient un break / return / goto pour sortir de la boucle de recherche séquentielle lorsque l'élément a été trouvé:
Je n'ai pas encore trouvé une seule personne qui a tenté un programme en utilisant [ce style] qui a produit une solution incorrecte.
Roberts dit aussi que:
Les étudiants qui ont tenté de résoudre le problème sans utiliser un retour explicite de la boucle for ont eu beaucoup moins de succès: seuls sept des 42 étudiants ayant tenté cette stratégie ont réussi à générer des solutions correctes. Ce chiffre représente un taux de réussite inférieur à 20%.
Oui, vous êtes peut-être plus expérimenté que les étudiants de CS101, mais sans utiliser l'instruction break (ou un retour équivalent depuis le milieu des boucles), vous finirez par écrire du code qui, bien que nominalement structuré soit assez poilu en termes de logique supplémentaire les variables et la duplication de code que quelqu'un, probablement vous-même, y mettra des bugs logiques tout en essayant de suivre le style de codage de votre patron.
Je vais aussi dire ici que le papier de Roberts est beaucoup plus accessible au programmeur moyen, donc une meilleure première lecture que celle de Knuth. C'est aussi plus court et couvre un sujet plus étroit. Vous pourriez probablement même le recommander à votre patron, même s'il est le responsable plutôt que le type CS.