Istnieją różne szkoły myślenia iw dużej mierze sprowadza się to do osobistych preferencji.
Jednym z nich jest to, że mniej zagmatwane jest, jeśli istnieje tylko jeden punkt wyjścia - masz jedną ścieżkę przez metodę i wiesz, gdzie szukać wyjścia. Z drugiej strony, jeśli używasz wcięć do reprezentowania zagnieżdżenia, twój kod zostanie masowo wcięty w prawo i bardzo trudno będzie śledzić wszystkie zagnieżdżone zakresy.
Innym jest to, że możesz sprawdzić warunki wstępne i wyjść wcześnie na początku metody, dzięki czemu wiesz w treści metody, że pewne warunki są prawdziwe, bez wcięcia całej metody o 5 mil w prawo. Zwykle minimalizuje to liczbę zakresów, o które musisz się martwić, co znacznie ułatwia śledzenie kodu.
Trzecią jest to, że możesz wyjść gdziekolwiek zechcesz. Kiedyś było to bardziej zagmatwane, ale teraz, gdy mamy edytory i kompilatory do kolorowania składni, które wykrywają nieosiągalny kod, jest o wiele łatwiejsze do zrobienia.
Jestem w środku obozu. Egzekwowanie pojedynczego punktu wyjścia jest bezcelowym lub wręcz przynoszącym efekt przeciwny do zamierzonego ograniczeniem IMHO, podczas gdy losowe wyjście z całej metody może czasami prowadzić do bałaganu i trudnej do przestrzegania logiki, w której trudno jest zobaczyć, czy dany fragment kodu będzie, czy nie będzie wykonany. Jednak „bramkowanie” metody umożliwia znaczne uproszczenie całości metody.