Názory ke článku Java tutoriál - Operátory (5. díl)
20. 5. 2007
To hodnocení fakt nechápu, navíc jestli někdo má důvod dát takový, tak proč nenapíše sem do diskuze co se mu nelíbilo. Svět je plnej divnejch lidí (nebo někdo objevil chybu v redakčním systému?)
To musi byt chyba, ktoru niekto zneuziva...
Ved podla poctu ludi, ktorí nastivili tento clanok a poctu ludí, ktorí hlasovali je taký pomer, ze kazdý druhý hlasoval... Tak to podla mna nieje normlalne, aby normalny clovek robil toto....
Článek se nějak zapomněl zmínit o logických operátorech & a |. Zmíněna byla pouze jejich bitová verze. Tyto operátory však mají v závislosti na typu operandů dvě různé funkce:
* Jsou-li jejich argumenty celočíselné, pracují jako bitové operátory.
* Jsou-li jejich operandy typu boolean, tak se chovají jako klasické logické operátory, tj. jako operátory, které vždy vyhodnotí celý výraz.
Je sice pravda, že se používání logických operátorů & a | nedoporučuje, rpotože program nemá být závislý na vedlejších efektech vyhodnocování operandů, ale právě začátečníky je třeba s těmito operátory seznámit, protože když pak ve výrazu zapomenout logický operátor zdvojit, mohou se divit, proč se program chová tak divně.
Kromě toho mi připadalo, že pravidlo, že se většina operátorů vyhodnocuje přísně zleva doprava bylo málo zdůrazněno. Oproti jiným jazykům mají totiž překladače Javy ZAKÁZÁNO měnit v zájmu zvýšení efektiviy pořadí operandů při vyhodnocování výrazů. Levý operand se proto vždy vyhodnotí dříve než pravý. Takže např. u programu:
int a = 5;
int b = (a=10) + a
bude výsledek vždy 20 (Jazyky C a C++ např. nic takového nezaručují)
24. 5. 2007
Preklad je sity horkou jehlou. Je porovnavacich operatorech je chyba. Je tam
< menší než
< menší nebo rovno
coz je evidentne preklep.
Je možnost, že se spletli... např. s doměním, že dají článku jedničku jako ve škole mu dají nejmenší počet bodů. Je to dost matoucí systém, někde bývá jednička plný počet.
30. 5. 2007
Zdravím
Viem že toto nieje najvhodnejšie miesto na riešenie komplikácii s java ale môžete sa prosím dakto pozreť na moju otázku vo fóre?
http://www.programujte.com/forum.php?akce=prispevek&id=4700#37173
Moc by mi to pomohlo.
Ďakujem
tomolc
1. 8. 2007
Slovenský preklad nájdete na http://www.gymspmkr.edu.sk/informatika/JavaTutorial/
Kto sa vyzná v trminológií mohol by mi helfnut s revíziou
kontaktujte ma prosím na adrese etki@zoznam.sk
3. 10. 2008
17. vysledek = vysledek + 8; // výsledek je nyní 10
18. vysledek = vysledek % 7; // výsledek je nyní 3
19. System.out.println(vysledek);
20.
Caute,
sorry za blbu otazku ale nechapem operatoru zbytku. Preco je vysledok 3 ?
Diki moc.
8. 10. 2008
Reagoval na komentář od uživatele lamka :
hodnota vysledku v 18.riadku je uz 10, 10/7=1 a zbytok je 3, tento operator vracia iba zbytok po deleni. Preto 3
24. 5. 2012
Iba by som chcel upozorniť na preklep v tomto kuse kodu:
class ConcatDemo {
public static void main(String[] args){
String prvníRetezec = "Toto je";
String druhyRetezec = " spojovaný řetězec.";
String tretiRetezec = prvniRetezec + druhyRetezec;
System.out.println(tretiRetezec);
}
}
V definícii prvého reťazca ""String prvn>>>í<<<Retezec = .... má byť krátke i alebo potom v definícii tretiRetezec dlhé..
Super tutoriál pozdravujem autora a želám veľa úspechov...
5. 11. 2012
#11 kali
Nevím jestli JAVA nebo autor článku mají problémy s matikou, ale zbytek po dělení 10/7 není 3, ale 4. (10/7 = 1,42857) Moc by mne zajímalo, kde se vzala ta 3? JAVU se momentálně snažím naučit, ale tohle je do očí bijící.
23. 1. 2013
#13 Standa410
Obávám se, že nemáš pravdu. Zde se jedná o celočíselné dělení jako se učí asi ve 2 - 3 třídě ZŠ.
10 : 7 = 1 (což je reprezentace sedmičky a do deseti zbývá kolik? 10 - 7 = 3)
V případě nejasností doporučuji prostudovat http://cs.wikipedia.org/wiki/Zbytek_po_d%C4%9Blen%C3%AD
1. 2. 2018
Víme, že podmíněné příkazy vyhodnocují výraz v podmínce jako pravdivostní (booleovskou hodnotu). Níže uvádím část kódu, jenž byla vázána s příkladem k objasnění zkrácených booleovských log. operátorů.
V knize pana Herberta Schildta(JAVA kompletní průvodce vývojáře - strana 114-115) jsem se dočetl následujícího: Použijeme-li zkrácenou podobu operátorů & a | (tedy && a ||), pak Java nebude ztrácet čas vyhodnocováním pravého operandu, bude-li možné vyhodnotit celý výraz na základě hodnoty levého operandu.
Marně se snažím vymyslet příklad, který by tento vynález JAVY objasnil. Vzhledem k tomu, že Váš příklad funguje identicky i s nezkrácenou verzí těchto pravdivostních log. operátorů, je důkazem toho, že se jedná celkem o oříšek.
Orig. příklad:
int hodnota1 = 1; int hodnota2 = 2; if((hodnota1 == 1) && (hodnota2 == 2)) System.out.println("hodnota1 je 1 AND hodnota2 je 2"); if((hodnota1 == 1) || (hodnota2 == 1)) System.out.println("hodnota1 je 1 OR hodnota2 je 1");
Totéž:
int hodnota1 = 1; int hodnota2 = 2; if((hodnota1 == 1) & (hodnota2 == 2)) System.out.println("hodnota1 je 1 AND hodnota2 je 2"); if((hodnota1 == 1) | (hodnota2 == 1)) System.out.println("hodnota1 je 1 OR hodnota2 je 1");
Vážení děkuji za článek a předem velice děkuji za případnou odpověď.