Ja, Sie können Programme ohne break-Anweisungen [neu] schreiben (oder aus der Mitte von Schleifen zurückkehren, die dasselbe tun). Möglicherweise müssen Sie jedoch zusätzliche Variablen und / oder Codeduplizierungen einführen, die das Verständnis des Programms in der Regel erschweren. Pascal (die Programmiersprache) war aus diesem Grund besonders für Anfängerprogrammierer sehr schlecht. Ihr Chef möchte im Grunde, dass Sie in Pascals Kontrollstrukturen programmieren. Wenn Linus Torvalds in Ihren Schuhen wäre, würde er Ihrem Chef wahrscheinlich den Mittelfinger zeigen!
Es gibt ein Ergebnis der Informatik namens Kosarajus Hierarchie der Kontrollstrukturen, das aus dem Jahr 1973 stammt und in Knuths (berühmterem) Aufsatz über GOTOS aus dem Jahr 1974 erwähnt wird. (Dieser Aufsatz von Knuth wurde übrigens bereits oben von David Thornley empfohlen Was S. Rao Kosaraju 1973 bewiesen hat, ist, dass es nicht möglich ist, alle Programme mit mehrstufigen Unterbrechungen der Tiefe n in Programme mit einer Unterbrechungstiefe von weniger als n umzuschreiben, ohne zusätzliche Variablen einzuführen. Aber sagen wir, das ist nur ein rein theoretisches Ergebnis. (Fügen Sie einfach ein paar zusätzliche Variablen hinzu ?! Sicher können Sie das tun, um Ihrem Chef zu gefallen ...)
Was aus Sicht der Softwareentwicklung weitaus wichtiger ist, ist eine neuere Veröffentlichung von Eric S. Roberts aus dem Jahr 1995 mit dem Titel Loop Exits and Structured Programming: Reopening the Debate ( http://cs.stanford.edu/people/eroberts/papers/SIGCSE- 1995 / LoopExits.pdf ). Roberts fasst mehrere empirische Studien zusammen, die von anderen vor ihm durchgeführt wurden. Wenn zum Beispiel eine Gruppe von Schülern vom Typ CS101 gebeten wurde, Code für eine Funktion zu schreiben, die eine sequentielle Suche in einem Array implementiert, sagte der Autor der Studie Folgendes zu den Schülern, die einen break / return / goto-Befehl verwendeten, um das Array zu verlassen die sequentielle Suchschleife, wenn das Element gefunden wurde:
Ich habe noch keine Person gefunden, die versucht hat, ein Programm mit [diesem Stil] zu erstellen, das eine falsche Lösung hervorgebracht hat.
Roberts sagt auch, dass:
Studenten, die versuchten, das Problem zu lösen, ohne eine explizite Rückkehr aus der for-Schleife zu verwenden, schnitten viel weniger gut ab: Nur sieben der 42 Studenten, die diese Strategie versuchten, schafften es, korrekte Lösungen zu generieren. Diese Zahl entspricht einer Erfolgsquote von weniger als 20%.
Ja, Sie sind vielleicht erfahrener als CS101-Studenten, aber ohne die break-Anweisung (oder gleichwertig return / goto from the middle of loops) zu verwenden, schreiben Sie irgendwann Code, der zwar nominell schön strukturiert ist, aber in Bezug auf zusätzliche Logik haarig genug ist Variablen und Code-Vervielfältigung, die jemand, wahrscheinlich Sie selbst, mit Logikfehlern behebt, während er versucht, dem Codierungsstil Ihres Chefs zu folgen.
Ich werde hier auch sagen, dass Roberts 'Artikel für den durchschnittlichen Programmierer weitaus zugänglicher ist, also eine bessere erste Lektüre als die von Knuth. Es ist auch kürzer und deckt ein engeres Thema ab. Sie könnten es wahrscheinlich sogar Ihrem Chef empfehlen, selbst wenn er eher das Management als der CS-Typ ist.