Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet ugrani java-ban...

Hogyan lehet ugrani java-ban a sorok között?

Figyelt kérdés

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!


2014. jan. 31. 20:59
1 2
 1/13 anonim ***** válasza:

"még kezdő vagyok"

"többszálas programot írok"


Már csak egy kérdés maradt.

Miért?

2014. jan. 31. 21:04
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:

Ú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.

2014. jan. 31. 21:08
Hasznos számodra ez a válasz?
 3/13 SimkoL ***** válasza:
100%
Tudod egyáltalán mi az a szál ? Merthogy pascalban sem a szálak között ugráltál a gotoval :)
2014. jan. 31. 21:26
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:

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.

2014. jan. 31. 23:15
Hasznos számodra ez a válasz?
 5/13 A kérdező kommentje:
hmmm. igen kezdö vagyok, az if elágazást és a for ciklust ismerem, a változókat is(nagyjából, ami kell), bekérni scanner-rel kérek be. ugy értettem, hogy több "szálas" , hogy egy Dungeons & Dragons féle game-t próbálok 1ik haverommal összeállítani, biztos mindenki játszott már vele, kérdéseket teszek fel és aszerint, amit válaszol történik meg a cselekmény és nem akarok 15764909764 "szálat" írni minden választás után.
2014. febr. 1. 11:44
 6/13 anonim ***** válasza:

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.

2014. febr. 1. 11:52
Hasznos számodra ez a válasz?
 7/13 A kérdező kommentje:
huh. hogy érted,hogy külön metódusokba? mármint hozzak létre neki egy másik class-ot? akkor meg hogyan tudom elérni, hogy helyes sorrendben menjenek végbe amikor máshol vannak? milyen paraméterekben különböznének a válaszok? ezt hogy érted?(tudom idegesítő a sok kérdés de én sajnos ezeket még annyira nem vágom , néztem már mindenféle oktatóanyagot neten is, de a haverom jegyzetfüzetéből tanulok inkább)
2014. febr. 1. 12:08
 8/13 SimkoL ***** válasza:
Kezdetnek legyen pascalból is ismert case. Ez olyan mint egy rakás if :)
2014. febr. 1. 12:14
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:
akkor az if-ek helyett inkább a switch case szerkezetet használjam? akkor nem kell majd belső if-eket létrehozni? mert én már annyi if elágazást hoztam létre hogy ki sem igazodok.. :D
2014. febr. 1. 12:35
 10/13 anonim ***** válasza:

#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. :)

2014. febr. 1. 12:36
Hasznos számodra ez a válasz?
1 2

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!