-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Edek Pienkowski <e...@g...com>
Newsgroups: pl.comp.programming
Subject: Java i goto
Date: Mon, 25 Jun 2012 17:12:02 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 56
Message-ID: <jsa652$98b$2@inews.gazeta.pl>
NNTP-Posting-Host: static-81-219-27-130.devs.futuro.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1340644322 9483 81.219.27.130 (25 Jun 2012 17:12:02 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 25 Jun 2012 17:12:02 +0000 (UTC)
X-User: pieniekusenet
User-Agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT 30dc37b
master)
Xref: news-archive.icm.edu.pl pl.comp.programming:198085
[ ukryj nagłówki ]"goto" w Javie jest słowem kluczowym, nieużywanym. Podobnie jak const.
Bytekod JVM natomiast, co właśnie sprawdziłem, ma instrukcję goto,
co biorąc pod uwagę to, że bytekod ma tylko trochę ponad 100 opcodes
oznacza, że było potrzebne. Czyli z punktu widzenia implementacji
nie byłoby problemu żadnego, gdyby Java miała goto.
I teraz tak: ja wiem, że "goto" jest Złe i w ogóle, ale jakoś
natknąłem się na coś co w Javie nieczęsto się tworzy, mianowicie
dość skomplikowany algorytm, gdzie przydało by się goto. W mega
uproszczonej wersji wygląda tak:
for () {
boolean someFlag
for() {
if (findSth()) {
found = sth;
someFlag = true;
break;
}
}
// można w tym uproszczonym przykładzie
// pominąć if robiąc powyżej break outer_loop
// ale to mega uproszczony przykład
if (someFlag) {
break;
}
}
if (!someFlag) {
throw new Failure();
}
Wolałbym tak:
for()
for() {
if (findSth()) {
found = sth;
goto search_complete;
}
}
}
throw new Failure();
search_complete:
Mi ten drugi kod wygląda na prostszy i dużo bardziej zrozumiały,
a prawdziwy kod jest dużo gorszy, bo niepodzielny na metody i
długi na kilkaset linijek i szczerze mówiąc ten przykład nie oddaje
problemu, prawdziwy ma tych someFlagów ze dwadzieścia, pętle
bardziej skomplikowane itd.
Dlaczego Java nie ma goto, czy dlatego żeby raczkujące berbecie
się nie pocięły?
Edek
Następne wpisy z tego wątku
- 25.06.12 19:28 A.L.
- 25.06.12 19:25 Maly troll
- 25.06.12 19:42 Edek Pienkowski
- 25.06.12 19:43 Edek Pienkowski
- 25.06.12 21:15 A.L.
- 25.06.12 21:16 Edek Pienkowski
- 25.06.12 21:33 Edek Pienkowski
- 25.06.12 21:43 AK
- 25.06.12 22:03 Edek Pienkowski
- 25.06.12 22:05 AK
- 25.06.12 22:09 Edek Pienkowski
- 25.06.12 22:14 AK
- 25.06.12 23:24 Edek Pienkowski
- 26.06.12 15:15 Roman W
- 26.06.12 15:18 Roman W
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-31 Szukam: czujnik ruchu z możliwością zaączenia na stałe
- 2024-12-31 Warszawa => Solution Architect (Java background) <=
- 2024-12-31 Warszawa => Starszy Konsultant AWS <=
- 2024-12-31 Warszawa => International Freight Forwarder <=
- 2024-12-31 Odpowiedzialność w spółce z oo
- 2024-12-31 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-31 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2024-12-31 Warszawa => Specjalista ds. bezpieczeństwa informacji i ciągłości
- 2024-12-31 8%
- 2024-12-31 Błonie => Administrator systemów <=
- 2024-12-31 Błonie => IT System Administrator <=
- 2024-12-31 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2024-12-31 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2024-12-31 Warszawa => Helpdesk - I linia wsparcia <=
- 2024-12-31 kabelek - kynar ?