Kezdőoldal » Számítástechnika » Programozás » (JAVA) Kicsi segítség kellene...

Krisz2 kérdése:

(JAVA) Kicsi segítség kellene a & és | jelentésével kapcsolatban?

Figyelt kérdés
Azt mondjuk értem hogy a | csak akkor ad igazat ha csak az egyik feltétel igaz(?) de annak mi értelme hogy ha a & bal oldalán lévő feltétel hamis akkor is vizsgáljuk meg a másikat?

2013. máj. 29. 21:40
 1/10 anonim ***** válasza:

A | akkor ad igazat, ha legalább az egyik vagy mindkét oldal igaz értéket ad vissza.

A & pedig csak akkor ad igazat, ha mindkét oldal igaz. Ha az & bal oldala hamis, akkor már a jobb oldal nem értékelődik ki.

2013. máj. 29. 21:52
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:

Nem teljesen értem a problémádat ha jól sejtem, akkor logikai operátorok működésére vagy kíváncsi:

|| a logikai VAGY. Ha az egyik feltétel igaz, akkor igaz:


igaz || igaz = igaz

igaz || hamis = igaz

hamis || igaz = igaz

hamis || hamis = hamis


&& a logikai ÉS. Ha mindkét feltétel igaz, akkor igaz:


igaz && igaz = igaz

igaz && hamis = hamis

hamis && igaz = hamis

hamis && hamis = hamis

2013. máj. 29. 21:56
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
Hasznos olvasnivaló: [link]
2013. máj. 29. 21:58
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:
Nem ezt kérdetem && hanem ezt &
2013. máj. 30. 08:55
 5/10 anonim ***** válasza:

Az operátorokat leírták előttem, de a kérdés második felére nem jött válasz.

Ahogy én értelmezem a kérdésed az, hogy miért kell & ha van &&, azaz mire jó kiértékelni a jobb oldalt, vagy a | operátornál ha igaz a bal oldal miért van értelme kiértékelni a másik oldalt.


Akkor van ennek értelme, ha a jobb oldal kiértékelése egy esetleges hibát dobna. mivel nem Java-s vagyok itt egy C#-os példa:


if(x || int.Parse(type) == 3) {...}

Itt ha x bool változó és true az értéke, akkor ugye a feltétel igaz, tehát nem értékeli ki a másik oldalt és bemegy az ifbe. Ha viszont a |-ot használjuk, akkor a program kiértékeli a jobb oldalt, és ha a type nem parseolható inté azaz mondjuk szöveg van benne, akkor bizony a program hibát dob.

Ha mindez mondjuk egy try-catch blokkban van, máris beugrik a catch részbe és lehet hibát kezelni, mígy az első esetben nem.

2013. máj. 30. 08:58
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

"if(x || int.Parse(type) == 3) {...}

Itt ha x bool változó és true az értéke"

Ez úgy is simán megoldható, ha lusta vagyot használ az ember és megfordítja a feltételeket.

Igazából a lusta logikai operátorok biztonságosabbak, hogy miért van szükség mohóra is... Gondolom mert van olyan szemlélet is, ne maradjon ki a nyelvből.

2013. máj. 30. 09:56
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
100%
A mohó operátorokra olyan esetekben lehet szükség, ha a kifejezés mindkét oldalának van olyan mellékhatása, aminek a visszadott értéktől függetlenül be kell következnie.
2013. máj. 30. 10:17
Hasznos számodra ez a válasz?
 8/10 iostream ***** válasza:

A sok baromság után, amit az utolsó mond, ez az értelme, a mellékhatások.


Igazából ezek bitenkénti operátorok, tehát kiértékelik mindkét oldalukat, és utána végeznek el egy bitműveletet. Amiből aztán jöhet egy logikai érték, ha azt kívánja a környezet.

2013. máj. 30. 11:02
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
0%

"Amiből aztán jöhet egy logikai érték, ha azt kívánja a környezet."


Éppen te vagy az aki itt baromságot beszél. Javaban ezek az operátorok teljesen külön kezelik az aritmetikai és a logikai operandusokat. Két aritmetikai érték eredménye egy aritmetikai érték, ugyanígy két logikai érték eredménye egy logikai érték. Bármilyen egyéb kombináció szemantikai hibát eredményez, és a C/C++ nyelvektől eltérően a két típus közt konverzió sincs.

2013. máj. 30. 14:15
Hasznos számodra ez a válasz?
 10/10 iostream ***** válasza:

Nana!

[link]

[link]


Ne keverd a konverziót az operátorok szerepével. Megfelelő környezet alatt azt értve, hogy az operandusok is logikai értékek voltak, nincs itt probléma :)

2013. máj. 30. 15:51
Hasznos számodra ez a válasz?

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!