-
Data: 2012-06-25 19:28:21
Temat: Re: Java i goto
Od: A.L. <l...@a...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Mon, 25 Jun 2012 17:12:02 +0000 (UTC), Edek Pienkowski
<e...@g...com> wrote:
>"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
Dlaczego nie ma goto?... Bog tak chcial...
A co o takim rozwiazaniu?...
search_complete:
{ // begin of search_complete block
for()
for() {
if (findSth()) {
found = sth;
break search_complete;
}
}
}
throw new Failure();
} // end of search_complete block
A.L.
Następne wpisy z tego wątku
- 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
- 26.06.12 20:45 Tomasz Sowa
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-03 ROG
- 2025-07-03 OZE dały Polsce więcej prądu niż elektrownie węglowe
- 2025-07-03 Dlaczego nikt nie powiadamia służb!
- 2025-07-02 Jaka ładowarka sieciowa do Iphona?
- 2025-07-02 ,,The Plot to Get RFK" (,,Spisek, by pozbyć się RFK")
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Rozkaz 16-2025: 2025-06-19 Apelacja Do Wyroku Sądu Rej. w Sprawie IVRNs 295-23
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Inżynierowie... inżynierzy...
- 2025-07-02 Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 2025-07-02 Kto potrafi sprawdzić aku BMW 48V 10Ah Li-Ion do mini hybrydy, czy sprawny ?
- 2025-07-02 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-02 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-02 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-02 Warszawa => Inżynier oprogramowania .Net <=