Kezdőoldal » Számítástechnika » Programozás » Miért van a Java-ban break...

Miért van a Java-ban break meg continue utasítás?

Figyelt kérdés
A goto-t mint vezérlés irányító utasítást teljesen kiszedték, de ezeket benne hagyták. Arra gondolok, hogy simán helyettesíthetem egy kivétel dobással adott helyen majd elkapom a cikluson kívül break esetében, vagy cikluson belüli blokkban continue-nál. Nem értem miért hagyták ezt benne, ha egyszer fölösleges.

2014. jún. 19. 16:05
1 2 3
 11/30 iostream ***** válasza:
100%

"a ciklusoknál ez nincs így, ott nem számítasz össze-vissza break meg continue utasításokra."


Osztán mér nem? Nyelvi elem, számíts rá, hogy találkozni fogsz vele. C++-ban volt az auto, amit soha sehol nem használt senki (11 előtt), a break/continue nem ilyenek.

2014. jún. 19. 20:18
Hasznos számodra ez a válasz?
 12/30 A kérdező kommentje:

"Mert mondjuk a kivétel drága?"

Most értettem meg, hogy a futásidőre céloz, hogy költséges a kivétel dobás. Oké, a Java tényleg nem a leggyorsabb, de hogy tervezésileg pont itt akartak gyorsítani?

2014. jún. 19. 20:24
 13/30 anonim ***** válasza:
100%

"A példánál maradva, ha megtalálod amit kerestél a gráfban/fában/valamiben visszadobod kivételként azt a jelzést, hogy megtaláltad és hozzá az adatot is, mert nyilván szükséged lesz rá."

Már ne haragudj, de adatok visszaadására, azaz "üzemszerű" feltételek mellett Exception adatátadásra használni elég gányolásnak tűnik. Ha ilyen a kódod, akkor szervezd külön metódusba a keresést, és return-nel add vissza a megtalált elemet. Exceptiont - ahogy a neve is mutatja - leginkább kivételek, azaz nem várt körülmények felmerülésekor célszerű használni, nem ilyen esetekre.

2014. jún. 19. 20:33
Hasznos számodra ez a válasz?
 14/30 anonim ***** válasza:

@20:33: Igazad van.

PONT ez az eset, amire korábban próbáltam utálni, hogy erre használni a kivételeket ROSSZ MEGKÖZELÍTÉS.

2014. jún. 19. 20:39
Hasznos számodra ez a válasz?
 15/30 A kérdező kommentje:
Szerintem a gyakori kivételdobás, a nem üzemszerű használat, ha a ciklust 1000-szer lefut és egyszer dob kivételt az nem ilyen, ez tényleg kivétel.
2014. jún. 19. 20:56
 16/30 anonim ***** válasza:
100%

Jó, akkor, amit (valósznűleg) hallani akartál:


Dobáld nyugodtan a kivételt, a breaket eszedbe ne jusson leírni, viszont tőlem maradjon távol a kódod.

2014. jún. 19. 21:45
Hasznos számodra ez a válasz?
 17/30 anonim ***** válasza:

"Szerintem a kivételkezelés jobban követhető, mint a break meg a continue a ciklusban."


Attól tartok te pályát tévesztettél. A jól kivitelezett kivételkezeléshez tartozik a felelősségi lánc létrehozása is. A te is "módszereddel" ez megoldhatatlan lenne.


Amúgy meg felőlem bohóckodj ahogy akarsz, de ne mutasd meg senkinek a kódodat. Inkább égess könyvet, vagy közösülj halott kisállatokkal, az kevésbé aggasztana.

2014. jún. 21. 00:47
Hasznos számodra ez a válasz?
 18/30 A kérdező kommentje:

Mármint, az teszi lehetetlenné, hogy nem vezetem ki a metódus belét fölfelé? Az, hogy nem minden kivételt dob tovább? Dehát ezt hívjuk felelősségi láncnak, hogy ez ott lekezelheti (vagy továbbdobhatja). Az egy dolog az, ha kardoskodik valaki egy megoldás mellett, de aki azt mondja egy OO programnál, hogy tegyek mindent publikussá annál elmentek hazulról.


Pl. három ciklus mélységből az általad preferált módszerrel kibreakelni szerintem követhetetlen, az exception átlátható. A break meg a continue közelebb van a gépi vezérléshez mint bármi a nyelvben. Még jó hogy nem C-ben vagyunk, mert ott a longjump-ot akarnád velem használtatni.

2014. jún. 21. 01:18
 19/30 anonim ***** válasza:
Csináld ahogy akarod, majd ha egyszer tényleg dolgozni fogsz és más is látja a kódodat, majd a főnök jól elbeszélget veled...
2014. jún. 21. 01:19
Hasznos számodra ez a válasz?
 20/30 anonim ***** válasza:
74%

Hánynom kell a hülyeségedtől.

De megnyugtat a tudod, hogy sohasem lesz belőled szoftverfejlesztő. Attól a pillanattól kezdve, hogy valaki fizet akar a munkádért, el leszel kaszálva a baromságaiddal együtt.

Vannak fura megoldások, vannak last-minute hack-ek, vannak gyorsan összerakott programok és vannak junior fejlesztők. De te fiam, te vagy a legrosszabb, mert nem vagy képes fejlődni és tanulni. Akár hányan mondják, hogy a mit csinálsz az hülyeség, csak nyomod itt a dumát, hogy a rendes megoldás neked nem tetszik. Ha képtelen vagy valamit megérteni akkor nem az a megoldás, hogy fikázod, vagy megkerülöd. Remélem időben felnősz, vagy legalább felhagysz azzal a nedves kis vágyálmoddal, hogy te az IT szférában akarsz elhelyezkedni.


Hogy nyugodtan aludj ma este, itt egy kis kódrészlet csak neked:


while (true)

{

  if (condition() == false)

    break;

}


Ettől a naptól fogva akár hányszor írok egy break-et, vagy continue-t (és elég gyakran szoktam) rád fogok gondolni és jól fogom magam érezni.

2014. jún. 21. 18:18
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!