Je zvláštní, že někteří lidé poté co vykonají velkou potřebu ve veřejném prostoru, mají ještě nutkání se v těch hovnech prohrabávat. Budiž.
Někde v polovině tohoto threadu jsem diskutujícím vytýkal, že pomíjejí kontext. Od té doby myslím jen Kiwi zdůraznil, že pokud píše v C, považuje následující za idiomatické. Různé jazyky mají různé pohledy na to, jak je dobré, aby kód vypadal. Většinou se vyplatí tohoto držet. Je komické se bavit o jediném exit pointu funkce v jazycích, které podporují výjimky, protože exit pointem může být jakékoliv volání funkce, které vyhodí výjimku (pokud to v dané funkci explicitně neošetřím, což zase podpírá smysl výjimek).
I když si Dijkstry považuji, nemyslím si že jeho téměř 50 let staré zásady strukturovaného programování nedoznaly za ta léta určitých změn a nelze je brát dogmaticky. Samozřejmě, že je lepší, když má funkce jen jeden exit point, ale abych toto pravidlo dodržel, nebudu kvůli tomu zavádět třeba 5 řídících proměných. Nakonec některé z těch zásad měly neméně slavné oponenty (Wirth, Knuth) a nemyslím, že kdokoliv z nás se komukoliv z nich rozhledem a vědomostmi alespoň přibližuje.
Abychom se dál nehrabali v těch hovnech, bylo by dobré, aby každý podpořil své tvrzení alespoň citátem nějaké uznávané autority. Takže pro začátek:
Nested conditional code often is written by programmers who are taught to have one exit point from a method. I've found that is a too simplistic rule. When I have no further interest in a method, I signal my lack of interest by getting out. Directing the reader to look at an empty else block only gets in the way of comprehension.
Martin Fowler - Refactoring