W tej sprawie nie zgodzę się z wami wszystkimi młodymi szarpaczami.
Używanie zwrotu w środku metody, pustej lub innej, jest bardzo złą praktyką, z powodów, które zostały wyartykułowane dość jasno, prawie czterdzieści lat temu, przez zmarłego Edsgera W. ”i kontynuuje w„ Structured Programming ”autorstwa Dahla, Dijkstry i Hoare'a.
Podstawowa zasada jest taka, że każda struktura kontrolna i każdy moduł powinien mieć dokładnie jedno wejście i jedno wyjście. Wyraźny powrót w środku modułu łamie tę zasadę i znacznie utrudnia wnioskowanie o stanie programu, co z kolei znacznie utrudnia stwierdzenie, czy program jest poprawny, czy nie (co jest znacznie silniejszą właściwością niż „czy wydaje się działać, czy nie”).
„Oświadczenie GOTO uważane za szkodliwe” i „Programowanie strukturalne” zapoczątkowały rewolucję „programowania strukturalnego” w latach siedemdziesiątych. Te dwie części to powody, dla których mamy dziś jeśli-to-inaczej, podczas-do i inne jawne konstrukcje kontrolne, a także dlaczego instrukcje GOTO w językach wysokiego poziomu znajdują się na liście zagrożonych gatunków. (Osobiście uważam, że muszą znajdować się na liście gatunków wymarłych).
Warto zauważyć, że Message Flow Modulator, pierwsze oprogramowanie wojskowe, które ZAWSZE przeszło testy akceptacyjne za pierwszym razem, bez żadnych odchyleń, odstępstw lub „tak, ale” słownictwo, zostało napisane w języku, który nawet nie miał oświadczenie GOTO.
Warto również wspomnieć, że Nicklaus Wirth zmienił semantykę instrukcji RETURN w Oberon-07, najnowszej wersji języka programowania Oberon, czyniąc ją końcową częścią deklaracji procedury wpisanej (tj. Funkcji), a nie wykonywalna instrukcja w treści funkcji. Jego wyjaśnienie zmiany mówiło, że zrobił to właśnie dlatego, że poprzednia forma BYŁA naruszeniem zasady jednego wyjścia programowania strukturalnego.