Hogyan lehet ugrani java-ban a sorok között?
egy többszálas programot írok jelenleg és az érdekelne, hogyan tudok az egyik szálból a másikba ugrani?
pascalban pl. ott volt a goto utasítás de itt nem tudom mivel csináljam ezt meg. lehetöleg ne profi szinten írjátok le, mert még kezdő vagyok.
előre is köszi!
"még kezdő vagyok"
"többszálas programot írok"
Már csak egy kérdés maradt.
Miért?
Úgy érted, hogy a Thread osztályt használod kezdőként???
A goto-ra nincs szükség. Pascalban sem. Ciklussal és feltételes elágazással mindent meg lehet oldani.
1) Most sorok vagy szálak közt ugrálnál?
2) Ha sorok: a [link] lapon keress a "goto" szóra, és olvasd el mit írtak oda.
3) Ha szálak: mit értesz ugráláson? Egy kódblokk egy szálhoz tartozik. Ha azt akarod hogy a szálak váltakozva fussanak például, akkor arra vannak metódusok: wait és notify.
4) Ha kezdő vagy, én is csodálkoznék, ha szálakkal dolgoznál.
Aha, hát azok messze nem szálak. Inkább "ágak", ugyanis ha jól értem, minden kérdés egy elágazás.
Ha pedig nem akarsz egybeágyazni 70ezer if-et, akkor először tervezd meg a kérdések folyamát. Aztán pl. az azonos, vagy 1-1 paraméterben eltérő de hasonló ágakat teheted külön metódusokba.
#4 és #6 vagyok, #7-esre válasz:
Nem külön class, csak külön metódus. Persze lehet külön classba is, ha nagyon sok metódusod lenne és logikailag átláthatóbbá akarod tenni.
A sorrendet pedig te adod meg a kódodban. Hívod az első metódust, aztán a másodikat.
Paraméteres ágak: megpróbálok rá példát mutatni, egyúttal a külön metódusos dologra is.
static void main(String[] args) {
// kérdés: merre mész balra vagy jobbra?
// String irany = bekért válasz
// String fegyver = fegyverKerdes(irany);
// ha irany = "balra" {
// balra(fegyver);
// } különben {
// jobbra(fegyver);
// }
}
static void String fegyverKerdes(String irany) {
// kérdés: milyen fegyvert akarsz kard vagy balta?
// fegyver = bekért válasz
// ha irany="balra" és fegyver="balta" {
// kiír: "Ha balra mész nem használhatod a baltát, kardod lesz!"
// fegyver = "kard"
// }
// return fegyver;
}
static void balra(String fegyver) { ... }
static void jobbra(String fegyver) { ... }
Nyilván tartalmilag hülyeség, de hogy lásd, hogy így is szét lehet bontani a dolgokat. :) Átláthatóbb lesz a dolog mert nincs sok egybeágyazott if és kódismétlés sem, mert ha pl. sokszor kell megkérdezni a fegyvert, akkor csak meghívod a fegyverkérő metódust. (Jó mondjuk nem feltétlen kell mindenhol neki irány, mindegy.)
Persze nem kell minden metódusnak paraméter, meg egy metóduson belül is rakhatsz több egymásba ágyazott if-et, ízlés szerint, csak nem akartam többet gépelni, meg nem volt több ötletem hirtelen. :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!