Názory ke článku Java tutoriál - Výrazy, příkazy aj. (6. díl)
Jo jo.... čistá práce bez škrábance....
Jen bych řekl že [i]cyklus for[/i] se používá hlavně když známe přesný počet opakování.
16. 7. 2007
Zdravim, v odstavci o cyklu foreach jsou dva drobné překlepy v textu + v kódu se zřejmě pod proměnou "item" myslí proměnná "cislo", případně naopak. Tak si to kdyžtak opravte ;-)
Jako obyč přicházím opět s připomínkami k některým formulacím.
1. Není pravda, že výsledek násobení nezáleží na pořadí provádění operací. To platí pouze pro celá čísla. Při násobení desetinných čísel to již zdaleka platit nemusí, protože při něm vznikají zaokrouhlovací chyby, takže v závislosti na pořadí provedení násobení se může výsledek lišit. Proto také Java nakazuje, že operace se ve výrazech MUSÍ provádět zleva doprava.
2. Vím, že toto není kurz programování, ale kurz programovacího jazyka. Přesto bych považoval za užitečné upozornit na velice oblíbený začátečnický nešvar, kterým je řazení příkazů if bez odpovídajících větví else. Program pak běží zbytečně pomalu, porotže se vykonávají všechny testy, tj. i ty, o nichž dopředu víme, že neplatí. Bylo by vhodné si zafixovat podobu násobného vběžtvení tak, jak byla uvedena v článku, a zdánlivě nepotřebné else nevynechávat.
3. Připomenul bych, že návěští v příkazech case musí být konstanty převeditelné na int a vyhodnotitelné v době překladu, tj. literály nebo statické konstanty.
4. V posledním příkladu k cyklu do-while je do metody main ještě jednou vložena metoda main.
5. Nesouhlasím s Antillesem, že se "cyklus for používá hlavně když známe přesný počet opakování". Cyklus for je označován jako cyklus s parametrem (mohli bychom říct jako cyklus s explicitně deklarovaným parametrem), a tak se také používá. Jedním z jeho velmi častých použití je použití, při němž je parametrem cyklu iterátoru, a u něj většinou ani netušíme, kolik průchodů cyklu bude.
6. Na závěr bych snad ještě dodal, že všechny vyjmenované cykly mohou být i bez těla - to když vedlejší efekt vyhodnocení podmínky může změnit stav programu tak, že jednou bude cyklus ukončen -- např. (velmi zjednodušeně):
//...
int c;
while( Character.isLetter(c = reader.read()) );
//Zpracuje nalezené písmeno
//...
29. 7. 2007
V jedne casti prikladu...
case 2:
if ( ((rok % 4 == 0) && !(rok % 100 == 0))
|| (rok % 400 == 0) )
pocetDni = 29;
else
pocetDni = 28;
break;
je hezky, ze je break; pod else, ale stejne potreba je i pod if. Mam to vyzkouseny, nepracuje to bez toho jak ma. Prilezitostne to opravte, prosim.
mfx
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
22. 8. 2007
??????????????????????????????????????????????????????????????????????
Slovenský preklad?????????????????????????????????????????????????????
kde??????????????????????????????????????????????????????????????????
tých pár riadkov???????????????????????????????????????????????????????
by som sa na to vysral ... zas to skončí ako vždy .... vysere sa na to ?????
21. 2. 2010
Jen jsem si všimnul, že v mnoha příkladech je vždy přeložena z angličtiny jen třeba půlka kódu (přeložíš deklaraci, ale dále v programu používáš původní angl. název). Jen to zmiňuju, kdyby sis toho nevšiml, jelikož pro úplný nováčky, kteří si kód přímo zkopírují, to může bejt matoucí (proč mi to sakra nejde? :D )