21 stycznia 2009

Pętle i etykiety

Witam po dłuższej przerwie, ale do rzeczy. Czasami zdarza się (szczególnie w pracy), iż ktoś zagląda na mój kod. Często w takich momentach widzę zdziwienie na twarzy podglądacza, gdy zauważa, że używam etykiet dla zagnieżdżonych pętli. Wydaje mi się, że często pomija się to dobrodziejstwo, a szkoda.

loop: for (Connection connection : outcomingConnections) {
...
}

4 komentarze:

Jacek Laskowski pisze...

Możesz wyjaśnić, dlaczego warto etykietować pętle? Nie robię tego, ale sprowokowałeś mnie do myślenia i miałbym jedno (sensowne?) wyjaśnienie (którego jeszcze nie zdradzę). Ciekawym Twojego.

Jacek
Notatnik Projektanta Java EE

syllepsa pisze...

Miałem tu na mysli użycie intrukcji break lub continue (w pętlach zagnieżdżonych). Dzieki temu w łatwy sposób przenosimy się do wybranej pętli.

Teraz jestem ciekaw Twojego zastosowania.

Pozdrawiam

Mariusz

Jacek Laskowski pisze...

Faktycznie! To jak goto w C. Pamiętam teraz, że gdzieś to widziałem i mnie zmroziło, że jest dostępne, a niewielu o tym wie, albo nie chce o tym wspominać. Ciekawe dlaczego?!
Moje zastosowanie to jedynie komentowanie pętli - nadawanie im nazw może wprowadzić pewien rodzaj DSLa w programie - niby nic wielkiego, a może pomóc w zrozumieniu, o co chodzi.

syllepsa pisze...

Chyba dzieje się tak dlatego, iż od pierwzego roku studiów próbuje się w nas usunąć skłonności do użycia goto. A etykiety? Całkiem przyjemna i pozyteczna rzecz ;)